WPF 中工具栏菜单样式不和谐的解决方法

发布于 2024-11-18 16:08:19 字数 1375 浏览 4 评论 0原文

我很难在 中播放

来玩得很好。我的示例如下所示,放置在 VS2010 的默认 WpfApplication 项目模板中的空窗口中:

<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 styles failure

我不是设计师,也不是 WPF 大师,所以我尝试让菜单的样式更接近按钮的简单尝试失败了灾难性的。

有没有人有一个简单的(最好是基于Toolbar.MenuStyleKey)样式来使菜单恢复正常?

I've troubles getting to play a <Menu/> within a <Toolbar/> to play nice. My Example, as follows is placed in an empty window in a default WpfApplication project template from 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>

The default style mis-aligns both the label and the hover-indicator:

menu-in-toolbar styling fail

I'm no designer, nor a WPF-guru, so my simple attempts at getting the menu's style closer to the buttons have failed catastrophically.

Has anybody a simple (ideally based on Toolbar.MenuStyleKey) Style to get the Menu back in line?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情痴 2024-11-25 16:08:19

这是一个在 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>

Here is a quick thing that seemed to work in 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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文