Есть ли способ сделать разделитель в меню WPF более узким?

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

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

2 ответа

Решение

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

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

Другие вопросы по тегам