如何在WPF和MahApps中创建汉堡包或Glasswire风格的菜单?

时间:2015-11-04 11:24:48

标签: wpf xaml mahapps.metro hamburger-menu

理想情况下,它应该看起来像GlassWire应用程序(左上角):

https://www.glasswire.com/images/feature_image_remote_monitoring.png

它的行为就像一个应用程序图标系统菜单,但更明显和可自定义。

我遇到的具体问题是:

1)如何轻松添加标题栏友好汉堡菜单按钮(理想情况下仅限XAML),例如通过mahApps:MetroWindow.LeftWindowCommands

2)如何自定义它看起来就像GlassWire的菜单按钮(顶部对齐的零上边距薄矩形)?我尝试使用对齐和高度但是它不起作用 - 顶部总是有一个间隙。

这是我到目前为止(app图标旁边的汉堡包按钮):

Hamburger button but no menu

<mahApps:MetroWindow.LeftWindowCommands>
    <mahApps:WindowCommands ShowSeparators="False">
        <Button>
            <Button.ContextMenu>
                <ContextMenu>
                    <MenuItem Header="Menu Item 1"/>
                    <MenuItem Header="Menu Item 2"/>
                    <MenuItem Header="Menu Item 3"/>
                </ContextMenu>
            </Button.ContextMenu>
            <Rectangle Width="14" Height="14" Fill="{Binding RelativeSource={RelativeSource AncestorType=Button}, Path=Foreground}">
                <Rectangle.OpacityMask>
                    <VisualBrush Stretch="Fill" Visual="{StaticResource appbar_lines_horizontal_4}" />
                </Rectangle.OpacityMask>
            </Rectangle>
        </Button>
    </mahApps:WindowCommands>
</mahApps:MetroWindow.LeftWindowCommands>

不幸的是,上下文菜单并不理想,因为它的行为需要一些C#代码来使其正确。

0 个答案:

没有答案