一段时间以来,我一直在尝试以自己的方式实现微软的汉堡包模式。
最终结果如下:
- AppShell 用于包含当前页面和汉堡菜单(菜单始终可见)
- 在 Appshell 中,Grid 有两行:一是 48px 高,一是一开始高度。
- 在第一行,添加了一个命令栏(全局)和汉堡按钮(具有自定义样式的切换按钮,宽度和高度为 48 像素,汉堡字体图标位于中心)
- 在第二行,SplitView 在窗格上有一个 ListBox,在内容中有一个 Frame。
这种方式可以控制内容,同时显示全局菜单和命令栏。在 Frame 的 Navigated 事件中,我更新 CommandBar 以从 Frame 的 Content 属性(我使用具有这些属性的自定义页面控件)和 CommandBar 的内容(现在是带绑定的单个 TextBlock)。
但是,我想将 ToggleButton 移到 CommandBar 中。它工作得很好,除了绑定(ToggleButton 的 IsChecked 绑定到 SplitView 的 IsPaneOpen)不起作用。我使用常规的 ElementName 定位,并且不希望使用 ViewModel 属性。
CommandBar.Content 是否使用不同的上下文?或者为什么 ElementName 参考不起作用?