仅显示仅在区域中应用的仅显式xaml样式或样式

时间:2013-02-07 13:02:54

标签: c# wpf xaml .net-4.0

当我在用户控件的根目录的Resources中声明一个样式时,它将应用于该XAML文件中目标类型的所有控件。我怎样才能制作一种风格: *仅在我明确说明时才使用 要么 *仅限于用户控件中的某个区域(例如将网格放入网格中,然后在第二个网格中声明样式将仅应用于该网格)。 我可以使用任何这样的容器,它对UI没有任何影响,但只是样式的容器吗?

1 个答案:

答案 0 :(得分:1)

要将它应用于整个子树,您可以在任何元素的资源中声明样式,它只适用于该元素(如果它是正确的类型)和子树中正确类型的元素。 (把它放在你的第二级网格<Grid.Resources>中)

要将其分配给特定元素,可以将其放在具有x:Key属性(<Style x:Key="MyStyle">)的祖先元素的资源字典中,然后使用其Style属性({{1)将所需的子元素指向它}})。如果给它一个显式的x:Key属性,它将不会根据类型隐式匹配。

或者,如果您根本不想使用资源,则可以在所需的任何元素中定义内联样式(Style="{StaticResource MyStyle}"),它只适用于该元素。