代码之家  ›  专栏  ›  技术社区  ›  jpierson

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

  •  7
  • jpierson  · 技术社区  · 14 年前

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

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

    2 回复  |  直到 9 年前
        1
  •  12
  •   Daniel Moore    14 年前

    Aero.NormalColor菜单项分隔符的样式如下:

    <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" 以符合您的偏好。

        2
  •  1
  •   Nytmo    9 年前

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