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

本文关键字:样式 区域 应用 xaml | 更新日期: 2023-09-27 17:58:22

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

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

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

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

或者,如果你根本不想使用资源,你可以在任何你想要的元素(<Grid><Grid.Style><Style>...</Style></Grid.Style><Grid>)中内联定义一个样式,它只适用于那个元素。