Временное решение, вызывающее раздражение стиля меню в панели инструментов в WPF - PullRequest
3 голосов
/ 04 июля 2011

У меня проблемы с игрой <Menu/> в <Toolbar/>, чтобы играть хорошо. Мой пример, как показано ниже, помещается в пустое окно в шаблоне проекта WpfApplication по умолчанию из VS2010:

<DockPanel>
    <ToolBar DockPanel.Dock="Top">
        <Button Content="Button 1"/>
        <Button Content="Button 2"/>
        <Separator/>
        <CheckBox Content="CheckBox 1"/>
        <CheckBox Content="CheckBox 2"/>
        <Separator/>
        <Menu>
            <MenuItem Header="Menu">
                <MenuItem Header="File">
                    <MenuItem Header="Copy"/>
                    <MenuItem Header="Paste"/>
                </MenuItem>
            </MenuItem>
        </Menu>
    </ToolBar>
    <Menu DockPanel.Dock="Top">
        <MenuItem Header="Menu">
            <MenuItem Header="File">
                <MenuItem Header="Copy"/>
                <MenuItem Header="Paste"/>
            </MenuItem>
        </MenuItem>
    </Menu>
    <Grid>

    </Grid>
</DockPanel>

Стиль по умолчанию неправильно выравнивает как метку, так и указатель наведения:

menu-in-toolbar styling fail

Я не дизайнер и не гуру WPF, поэтому мои простые попытки приблизить стиль меню к кнопкам потерпели неудачу.

Есть ли у кого-нибудь простой (в идеале основанный на Toolbar.MenuStyleKey) стиль, чтобы вернуть меню в соответствие?

1 Ответ

1 голос
/ 04 июля 2011

Вот короткая вещь, которая, кажется, работает в KaXaml:

    <ToolBar DockPanel.Dock="Top">
        <Button Content="Button 1"/>
        <Button Content="Button 2"/>
        <Separator/>
        <CheckBox Content="CheckBox 1"/>
        <CheckBox Content="CheckBox 2"/>
        <Separator/>
        <Menu Margin="0, -1, 0, 0" Style="{x:Null}">
            <MenuItem Header="Menu">
                <MenuItem Header="File">
                    <MenuItem Header="Copy"/>
                    <MenuItem Header="Paste"/>
                </MenuItem>
            </MenuItem>
        </Menu>
    </ToolBar>
...