有什么方法可以使 WPF 菜单中的分隔符更窄?

Any way to make a Separator within a WPF menu more narrow?

我注意到,在 WPF 的菜单中设置的默认分隔符的边距或高度似乎比其他一些应用程序(例如 Visual Studio 2010)稍大。我知道这些分隔符可以重新模板化通过使用自定义 ControlTemplate 应用新样式,但像往常一样,我正在寻找任何可能的方法来更改它,而无需手动重新定义控件的组成。

如果我的要求是不可能的,如果有人可以提供权威和详尽的解释,我会接受答案。另外我想强调一下,我对如何重新定义 ControlTemplate 的讲座不感兴趣,因为我将其视为最后的手段,并且我已经知道如何实现这一点。


aero.normalcolor 菜单项分隔符的样式如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<Style x:Key="{x:Static MenuItem.SeparatorStyleKey}"
       TargetType="{x:Type Separator}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Separator}">
                <Grid SnapsToDevicePixels="true" Margin="0,6,0,4">
                    <Rectangle Height="1"
                               Margin="30,0,1,1"
                               Fill="#E0E0E0"/>
                    <Rectangle Height="1"
                               Margin="30,1,1,0"
                               Fill="White"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

您需要将此样式复制到您的 app.xaml 并更改 Margin="0,6,0,4" 以匹配您的偏好。


我总是使用负边距:<Separator Margin="0,-4" />.