8

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

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

4

2 回答 2

13

aero.normalcolor MenuItem 分隔符的样式如下所示:

<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"以匹配您的偏好。

于 2011-01-12T16:20:08.197 回答
2

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

于 2015-10-26T21:48:51.893 回答