Wpf 如何通过TabControl模板控制Textblock属性
我设置了一个带有自定义网格的Wpf 如何通过TabControl模板控制Textblock属性,wpf,xaml,wpf-controls,tabcontrol,Wpf,Xaml,Wpf Controls,Tabcontrol,我设置了一个带有自定义网格的TabControl,用于保存图片和Textblock对象,作为标题的设计(TabItem)。我目前正在使用模板控制标题的背景色,我不知道如何使用同一模板控制嵌入的TextBlock的前景颜色 我是Visual Studio C#新手,但我对这些模板的理解是,我也可以使用它们设置子属性(类似于CSS子选择器)?还是说我完全疯了 这是我的“设计”-您会注意到顶部的三个选项卡带有自定义样式: TabItem 我建议使用LinqToVisualTree 您可以在Tab
TabControl
,用于保存图片和Textblock
对象,作为标题的设计(TabItem
)。我目前正在使用模板控制标题的背景色,我不知道如何使用同一模板控制嵌入的TextBlock
的前景
颜色
我是Visual Studio C#新手,但我对这些模板的理解是,我也可以使用它们设置子属性(类似于CSS子选择器)?还是说我完全疯了
这是我的“设计”-您会注意到顶部的三个选项卡带有自定义样式:
TabItem
我建议使用LinqToVisualTree 您可以在TabControl中找到所有“textBlock”控件,如下所示:
tabControl.Descendants<TextBlock>().Where(d => d.Name=="textBlock");
tabControl.subjects()。其中(d=>d.Name==“textBlock”);
然后您可以控制TextBlock属性我建议使用LinqToVisualTree 您可以在TabControl中找到所有“textBlock”控件,如下所示:
tabControl.Descendants<TextBlock>().Where(d => d.Name=="textBlock");
tabControl.subjects()。其中(d=>d.Name==“textBlock”);
然后您可以控制TextBlock属性对于任何试图完成相同任务的人,有一种方法可以引用父资源并“查询”它们以获取信息 我没有在
TabItem
上放置触发器来更改字体的颜色,而是在引用TabItem
状态的TextBlock
上放置触发器
您将使用DataTrigger
并使用RelativeSource
设置绑定它。在我的例子中,我用{RelativeSource-AncestorType={x:Type-TabItem}}}
下面是我应用于TextBlock
控件的XAML样式:
<Style x:Key="HeaderTextStyle" TargetType="{x:Type TextBlock}">
<Setter Property="TextWrapping" Value="NoWrap"/>
<Setter Property="TextTrimming" Value="None"/>
<Setter Property="Foreground" Value="{StaticResource HeaderTextColor_NotSelected}" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}" Value="true">
<Setter Property="Foreground" Value="{StaticResource HeaderTextColor}"/>
</DataTrigger>
</Style.Triggers>
</Style>
对于任何试图完成相同任务的人来说,都有一种方法可以引用父资源并“查询”它们以获取信息 我没有在
TabItem
上放置触发器来更改字体的颜色,而是在引用TabItem
状态的TextBlock
上放置触发器
您将使用DataTrigger
并使用RelativeSource
设置绑定它。在我的例子中,我用{RelativeSource-AncestorType={x:Type-TabItem}}}
下面是我应用于TextBlock
控件的XAML样式:
<Style x:Key="HeaderTextStyle" TargetType="{x:Type TextBlock}">
<Setter Property="TextWrapping" Value="NoWrap"/>
<Setter Property="TextTrimming" Value="None"/>
<Setter Property="Foreground" Value="{StaticResource HeaderTextColor_NotSelected}" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}" Value="true">
<Setter Property="Foreground" Value="{StaticResource HeaderTextColor}"/>
</DataTrigger>
</Style.Triggers>
</Style>
出于某种原因,您建议的网站正在重定向试图直接访问文章的用户——word to the wise,在主页上搜索“LINQ to VISUAL TREE”以查看文章,直到文章修复。好的,谢谢您的提示。希望建议的解决方案能有所帮助出于某种原因,您建议的网站正在重定向试图直接访问帖子的用户——word to the wise,在主页上搜索“LINQ to VISUAL TREE”以查看文章,直到文章修复。啊,好的,谢谢您的提示。希望提议的解决方案能有所帮助