仅更改菜单项单选按钮和复选框

本文关键字:复选框 单选按钮 菜单项 | 更新日期: 2024-11-08 07:37:19

对于分隔符,可以只更改此分隔符,这些都包含在MenuItem中。因此,我不得不使用:

<Style TargetType="{x:Type Separator}" x:Key="{x:Static MenuItem.SeparatorStyleKey}">

菜单项和单选按钮有这样的东西吗?另一个问题是,这只能在Windows7下正常工作,而在Windows XP下不能正常工作。我稍后发布了整个代码,但我不必指定带有键的分隔符。它是这样工作的 - 在 Windows7 下。在Windows XP中,颜色更改为,但是一个奇怪的透明边框是关于整个分隔符的。但是我只画了 1 个边框来用分隔符控件模板中的颜色填充它,而不是两个!

我可以在某个地方找到MenuItem的子"样式键"吗? vs 在这一点上没有智能。

仅更改菜单项单选按钮和复选框

以下是完整的代码:

<Style TargetType="{x:Type Separator}" x:Key="{x:Static MenuItem.SeparatorStyleKey}">
    <Setter Property="Background" Value="{Binding Path=Foreground, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Menu}}}"/>
    <Setter Property="Focusable" Value="false"/>
    <Setter Property="OverridesDefaultStyle" Value="True" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Separator}">
                    <Border Background="{TemplateBinding Background}"
                            SnapsToDevicePixels="True" 
                            Height="2"/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Windows XP的问题是,我没有覆盖默认样式。

带有单选按钮和复选框的另一个问题始终存在

另一个问题是,我必须覆盖网格背景的默认样式。 我必须用颜色在网格的背景上画一条线,并包含默认内容。该行不应在每个窗口手动添加,而应位于应用程序每个窗口的相同位置。

但是这条线应该只是一条线,而不是填满整个窗口,我不知道窗口的宽度和高度。 我可以使用吗? 有没有例子?