【发布时间】:2017-05-24 15:22:08
【问题描述】:
我正在开发一个 UWP 应用,我正在使用模板 10。当应用全屏时(Windows 10 Desko,汉堡菜单显示为打开。 全屏时可以关闭吗? 我一直在寻找所有的代码,我没有找到这个选项!
【问题讨论】:
-
这是屏幕自适应触发器的功能。您可以根据需要更改它们,但其中一些是烘焙逻辑。真的我不会习惯这个控件,它很快就会被弃用。
标签: c# uwp template10
我正在开发一个 UWP 应用,我正在使用模板 10。当应用全屏时(Windows 10 Desko,汉堡菜单显示为打开。 全屏时可以关闭吗? 我一直在寻找所有的代码,我没有找到这个选项!
【问题讨论】:
标签: c# uwp template10
当应用全屏时,汉堡菜单显示为打开
正如@mvermef 所说,此功能由汉堡菜单的AdaptiveTrigger 定义。您可以在模板 10 控件 HamburgerMenu 中找到以下 VisualStateGroup。
<VisualStateGroup x:Name="VisualStateGroup" CurrentStateChanged="VisualStateGroup_CurrentStateChanged">
<VisualState x:Name="VisualStateNarrow">
<VisualState.StateTriggers>
<AdaptiveTrigger x:Name="VisualStateNarrowTrigger" MinWindowWidth="{Binding VisualStateNarrowMinWidth, ElementName=ThisPage, Mode=OneWay}" />
</VisualState.StateTriggers>
<!-- see code-behind -->
</VisualState>
<VisualState x:Name="VisualStateNormal">
<VisualState.StateTriggers>
<AdaptiveTrigger x:Name="VisualStateNormalTrigger" MinWindowWidth="{Binding VisualStateNormalMinWidth, ElementName=ThisPage, Mode=OneWay}" />
</VisualState.StateTriggers>
</VisualState>
<VisualState x:Name="VisualStateWide">
<VisualState.StateTriggers>
<AdaptiveTrigger x:Name="VisualStateWideTrigger" MinWindowWidth="{Binding VisualStateWideMinWidth, ElementName=ThisPage, Mode=OneWay}" />
</VisualState.StateTriggers>
</VisualState>
</VisualStateGroup>
当窗口大小超过1200时,将触发HamburgerMenu的VisualStateWideTrigger,从而打开菜单。
全屏时可以关闭吗?
因此,如果您想防止这种情况发生,您可以将VisualStateWideDisplayMode 设置为Inline 或CompactOverlay 以进行HamburgerMenu 控制。
<Controls:HamburgerMenu x:Name="MyHamburgerMenu" VisualStateWideDisplayMode="Inline">
【讨论】:
AdaptiveTrigger 设置的,但我不知道代码在哪里。这段代码在哪里:<Controls:HamburgerMenu x:Name="MyHamburgerMenu" VisualStateWideDisplayMode="Inline">
HamburgerMenu。您如何创建模板 10 应用程序,我的意思是从哪个模板?
Hamgurger 模板,您应该在Views->Shell.xaml 中找到<Controls:HamburgerMenu>。然后添加我上面显示的属性。