c# – WPF:TabItem标头中的绑定
发布时间:2020-12-15 21:59:02 所属栏目:百科 来源:网络整理
导读:当TabItem的内容被修改(绑定数据)时,我想在标签项标题“*”(星号)中显示. 我有以下TabItem样式: TabControl.Resources Style TargetType="{x:Type TabItem}" Setter Property="Template" Setter.Value ControlTemplate TargetType="{x:Type TabItem}" Grid
|
当TabItem的内容被修改(绑定数据)时,我想在标签项标题“*”(星号)中显示.
我有以下TabItem样式: <TabControl.Resources>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid>
<Border Name="_border"
Margin="0,0"
Padding="0 0 5 0"
Background="Transparent"
BorderBrush="Black"
BorderThickness="0,0"
CornerRadius="1">
<StackPanel Orientation="Horizontal" Margin="10 2 0 2">
<TextBlock Foreground="Black" Name="_header">
<ContentPresenter VerticalAlignment="Center"
HorizontalAlignment="Center"
ContentSource="Header"
RecognizesAccessKey="True">
</ContentPresenter>
</TextBlock>
<Button Name="_close"
Visibility="Hidden"
Style="{StaticResource _closeButtonStyle}"
CommandParameter="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}"
Click="CloseTab_Click"
BorderThickness="0"
Margin="10 0 0 0"
Width="16"
Height="16">
<Image Source="Images/delete_icon16_white.png"
Width="10"
Height="10"
Cursor="Hand"/>
</Button>
</StackPanel>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="_header" Property="Foreground" Value="White"/>
<Setter TargetName="_close" Property="Visibility" Value="Visible"/>
<Setter TargetName="_border" Property="Background">
<Setter.Value>
<SolidColorBrush Color="{DynamicResource {x:Static SystemColors.HighlightColorKey}}"/>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouSEOver" Value="True"/>
<Condition Property="IsSelected" Value="False"/>
</MultiTrigger.Conditions>
<Setter TargetName="_header" Property="Foreground" Value="White"/>
<Setter TargetName="_close" Property="Visibility" Value="Visible"/>
<Setter TargetName="_border" Property="Background">
<Setter.Value>
<SolidColorBrush Color="{DynamicResource {x:Static SystemColors.MenuHighlightColorKey}}"/>
</Setter.Value>
</Setter>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TabControl.Resources>
当绑定数据的属性IsModified设置为true时,如何添加到提及“*”的这种样式? 谢谢你的回复 解决方法
使用Text =“*”在标题上创建一个TextBlock.
然后将其可见性与IsModified属性和booleanToVisibility Converter绑定 编辑: Visibility="{Binding IsModified,Converter={StaticResource booleanToVisibilityConverter}}"
在您的资源文件中 <BooleanToVisibilityConverter x:Key="booleanToVisibilityConverter"/> 编辑2:不知道你是否需要这个信息,只是为了这个案子. HeaderTemplate的一种方法 <Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Content}" />
<TextBlock Text="*" Visibility="{Binding IsModified,Converter={StaticResource booleanToVisibilityConverter}}"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
