我有一个相当复杂的WPF UserControl,它需要很多自定义样式,并且同一控件类型需要几种不同的样式。
我希望使用嵌套样式(使用Style.Resources
)作为一种命名空间机制,如下所示:
使用者控件范例:
<UserControl Style="{StaticResource AwesomeControl}>
<Grid>
<Button Style="{StaticResource ButtonA}"/>
<Button Style="{StaticResource ButtonB}"/>
</Grid>
</UserControl>
我 * 希望 * 如何定义我的风格:
<ResourceDictionary>
<Style TargetType="UserControl" x:Key="AwesomeControl">
<Style.Resources>
<Style TargetType="Button" x:Key="ButtonA"> </Style>
<Style TargetType="Button" x:Key="ButtonB"> </Style>
</Style.Resources>
</Style>
</ResourceDictionary>
然而,这并不起作用。据我所知,似乎不可能通过它们的键来处理嵌套样式。(我已经搜索了很多,但没有找到一个这样做的例子。)
我可以通过删除样式的嵌套来使它更容易工作,使它们都保持在顶层。但是,我必须将它们的键更改为AwesomeControlButtonA
等,以将它们与应用程序的其他部分区分开来
我觉得这不太理想。
所以我的问题是:
我正在尝试的上面的代码是否可行?如果不可行,是否有其他的命名空间方法可以用来防止像AwesomeControlButtonA这样的笨拙键?
1条答案
按热度按时间fd3cxomn1#
也许
DynamicResource
可以解决你的问题在上下文中: