如何隐藏XAML菜单中菜单项左侧的空格?

时间:2009-06-28 13:24:17

标签: wpf xaml menuitem

有没有办法可以抑制MenuItem文本左侧的空格?

alt text http://tanguay.info/web/external/extraSpaceMenus.png

下面的LeftAreaVisible="Collapsed"(伪代码):

<Menu DockPanel.Dock="Top">
    <MenuItem 
        LeftAreaVisible="Collapsed"
        Header="MVVM" ItemsSource="{Binding MvvmMenuPageItemViewModels}"
              ItemTemplate="{StaticResource MainMenuTemplate}"/>
</Menu>

1 个答案:

答案 0 :(得分:0)

解决了同样的问题。您也注意到Create Models和Create Pages之间没有可见的分隔符。我的问题是水平分离器不完全可见,即对于突出显示区域,没有水平分隔符。

enter image description here 以下是我修复它的方法:

 <MenuItem Header="New"/>
            <Separator>
                <Separator.Style>
                    <Style TargetType="Separator">
                        <Setter Property="Margin"
                                Value="0,3" />
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="{x:Type Separator}">
                                    <Border BorderThickness="{TemplateBinding Border.BorderThickness}"
                                            Background="{StaticResource SeperatorBrush}" 
                                            Height="1" 
                                            SnapsToDevicePixels="true"/>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </Separator.Style>
            </Separator>

这也是画笔。

 <LinearGradientBrush StartPoint="0,0" EndPoint="0,1" x:Key="SeperatorBrush">
        <LinearGradientBrush.GradientStops>
            <GradientStop Color="#FFF6F6F6" Offset="0.25" />
            <GradientStop Color="#FFEAE8E8" Offset="0.25" />
            <GradientStop Color="#FFDCD9D9" Offset="0.8" />
            <GradientStop Color="#FFFFFFFF" Offset="1" />
        </LinearGradientBrush.GradientStops>
    </LinearGradientBrush>

Brush用于显示Separator的默认外观。