0

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

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

menuitem 和 RadioButton 有类似的东西吗?另一个问题是,这只能在 windows7 下正常工作,而不能在 windows XP 下正常工作。我稍后发布整个代码,但我不必用键指定分隔符。它是这样工作的——在windows7下。在 windows xp 中,颜色变为,但一个奇怪的透明边框是关于整个分隔符的。但我只画了一个边框,用我的分隔符控件模板中的颜色填充它,而不是两个!

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

4

1 回答 1

0

这是完整的代码:

<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 的问题是,我没有覆盖默认样式。

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

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

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

于 2012-08-08T07:17:13.133 回答