当我在用户控件根的资源中声明样式时,它将应用于该 XAML 文件中目标类型的所有控件。我怎样才能做出这样的样式: * 仅在我明确声明时使用或 * 仅限于用户控件中的某个区域(例如将 Grid 放在 Grid 中,然后在第二个网格中声明样式将仅是应用于该网格)。有没有我可以使用的这样的容器,它对 UI 没有任何影响,而只是样式的容器?
问问题
86 次
1 回答
1
要将其应用于整个子树,您可以在任何元素的资源中声明样式,并且它将仅应用于该元素(如果它是正确的类型)及其子树中正确类型的元素。(例如,将其放在您的二级网格<Grid.Resources>
中)
要将其分配给特定元素,您可以将其放入具有 x:Key 属性 ( <Style x:Key="MyStyle">
) 的祖先元素的资源字典中,然后使用其 Style 属性 ( ) 将所需的子元素指向它Style="{StaticResource MyStyle}"
。如果你给它一个显式的 x:Key 属性,它不会根据类型隐式匹配。
或者,如果您根本不想使用资源,您可以在您想要的任何元素中定义内联样式 ( <Grid><Grid.Style><Style>...</Style></Grid.Style><Grid>
),它只会应用于该元素。
于 2013-02-07T13:51:12.847 回答