Есть ли способ сделать разделитель в меню WPF более узким? - PullRequest
7 голосов
/ 26 октября 2010

Я заметил, что поле или высота разделителя по умолчанию, как он стилизован в меню в WPF, кажется, немного больше, чем некоторые другие приложения, такие как Visual Studio 2010. Я знаю, что эти разделители могут быть повторно шаблонизированы применяя новый стиль с пользовательским шаблоном ControlTemplate, но, как всегда, я ищу любой возможный способ изменить это без необходимости заново определять состав элемента управления вручную.

Если то, о чем я прошу, невозможно, я приму ответ, если кто-нибудь сможет дать авторитетное и исчерпывающее объяснение. Также я хотел бы подчеркнуть, что мне не интересна лекция о том, как переопределить ControlTemplate, поскольку я рассматриваю это как последнее средство, и я уже знаю, как этого добиться.

Ответы [ 2 ]

12 голосов
/ 12 января 2011

Стиль для разделителя элементов меню 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" в соответствии с вашими предпочтениями.

1 голос
/ 27 октября 2015

Я всегда использую отрицательную маржу: <Separator Margin="0,-4" />.

...