我注意到在WPF菜单中设置样式的默认分隔符的边距或高度似乎比某些其他应用程序(如Visual Studio 2010)略大。我知道这些分隔符可以重新模板化通过使用自定义ControlTemplate应用新样式,但总是像我一直在寻找任何可能的方法来更改它,而无需手动重新定义控件的组成。
如果我要求的是不可能的话,如果有人可以提供权威和详尽的解释,我会接受答案。另外我想强调的是,我对如何重新定义ControlTemplate的演讲不感兴趣,因为我认为这是最后的手段,而且我已经知道如何实现这一目标。
答案 0 :(得分:12)
aero.normalcolor MenuItem Separator的样式如下所示:
<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"
以符合您的偏好。
答案 1 :(得分:1)
我总是使用负边距:<Separator Margin="0,-4" />
。