WPF中基于位置的样式可能吗?

Her*_*des 6 .net wpf resources xaml styling

在CSS中,可以根据HTML元素在元素树中的位置来设置样式:

div#container div#menu a
Run Code Online (Sandbox Code Playgroud)

我想在WPF中做同样的事情,以便只对菜单部分中的链接进行样式设置.

  • 问题#1:在WPF中,上述哪种方式也可以?

我正在考虑嵌套在StatusBar中的Separators的以下内容:

<Style TargetType="{x:Type StatusBar}">
    <Setter Property="Background" Value="Transparent" />
    <Setter Property="Padding" Value="0,0,20,0" />
    <Style.Resources>
        <Style TargetType="{x:Type Separator}">
            <Setter Property="Width" Value="20" />
            <Setter Property="Background" Value="Green" />
        </Style>
    </Style.Resources>
</Style>
Run Code Online (Sandbox Code Playgroud)

这段XAML包含在资源字典中.StatusBar显示透明背景和正确的填充.但是,遗憾的是绿色分隔符不显示.它只显示默认的灰色1px宽条.

  • 问题2:如果这是正确的解决方案,任何人都知道为什么这不起作用?

提前致谢.

Her*_*des 1

我自己偶然发现了一个答案。我提到的代码对于每种情况都是正确的,除了分隔符之外。Separator 元素应使用特定键进行样式设置,详细描述如下:http://devlicio.us/blogs/christopher_bennage/archive/2008/06/19/styling-separators-in-wpf.aspx