如果将单选按钮放在菜单中,是否有任何方法可以覆盖单选按钮的默认样式?但如果它在窗口中,它应该看起来像以前一样。但我不会使用 x:key。它应该会自动找到它。
问问题
112 次
2 回答
0
我看到两个解决方案:
使用 x:Key 创建样式,但将其放在 Menu.Resources 中 - 这样它将仅应用于菜单项。
ItemsControls (菜单之一)具有名为ItemContainerStyleSelector的属性。您可以创建自己的StyleSelector并根据容器类型设置样式。
于 2012-08-09T11:18:31.660 回答
0
这很容易,如果你知道怎么做:)
<style TargetType="{x:Type Menu}">
<Setter Property="Template>
<Setter.Value>
<ControlTemplate TargetType="{x:Type Menu}">
<ControlTemplate.Resources>
<Style Targettype="{x:Type Radiobutton}>
</Style>
</ControlTemplate>
<StackPanel IsItemsHost="True" Width="{TemplateBinding Width}" Height= {TemplateBinding Height} />
</Setter.Value>
</Setter>
</style>
您必须控制关键字的编写,因为我是这样编写的,而不是在 Visual Studio 上编写的。用堆栈面板覆盖菜单标准,因为我没有找到其他方法来设置资源。这很容易,但没有 Varius 的回答,我没有找到这个。您必须对 MenuItem 执行相同的操作。
我发布这个,因为我认为,它可能会帮助其他有同样问题的人。我已经搜索了很长时间,一无所获。
于 2012-08-09T18:01:12.487 回答