0

如果将单选按钮放在菜单中,是否有任何方法可以覆盖单选按钮的默认样式?但如果它在窗口中,它应该看起来像以前一样。但我不会使用 x:key。它应该会自动找到它。

4

2 回答 2

0

我看到两个解决方案:

  1. 使用 x:Key 创建样式,但将其放在 Menu.Resources 中 - 这样它将仅应用于菜单项。

  2. 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 回答