AdaptiveTrigger无法处理Template10 Shell

时间:2016-03-22 10:04:41

标签: winrt-xaml win-universal-app windows-10-universal template10

我正在为 UWP 平台构建我的第一个应用程序,我决定从 Template10 中包含的汉堡包模板开始。

我需要做的是与 Windows 10 中包含的 Groove Music 应用程序的汉堡包菜单类似,以便点击汉堡包的按钮打开一个Flyout创建一个新类别(就像他们为播放列表所做的那样)。

一切正常,Flyout只是打开而没有问题,在移动设备上使用应用程序时出现问题:Flyout包含一个文本输入,使虚拟键盘产生,移动{{ 1}}在屏幕外面。

我的目标是让应用程序处于狭窄的视觉状态时全屏显示Flyout,而在其他情况下显示在汉堡包的右侧。

不幸的是,似乎将Flyout添加到AdaptiveTrigger页面并不起作用,因为没有任何反应。

以下是相关的 XAML 代码:

Shell.xaml

正如您所看到的那样,<VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="AdaptiveVisualStateGroup"> <VisualState x:Name="VisualStateNarrow"> <VisualState.StateTriggers> <AdaptiveTrigger MinWindowWidth="{StaticResource NarrowMinWidth}" /> </VisualState.StateTriggers> <VisualState.Setters> <!-- TODO: change properties for narrow view --> <Setter Target="CategoryFlyout.Placement" Value="Full"/> <Setter Target="MyHamburger.HamburgerBackground" Value="Green"/> </VisualState.Setters> </VisualState> <VisualState x:Name="VisualStateNormal"> <VisualState.StateTriggers> <AdaptiveTrigger MinWindowWidth="{StaticResource NormalMinWidth}" /> </VisualState.StateTriggers> <VisualState.Setters> <!-- TODO: change properties for normal view --> <Setter Target="CategoryFlyout.Placement" Value="Right"/> </VisualState.Setters> </VisualState> <VisualState x:Name="VisualStateWide"> <VisualState.StateTriggers> <AdaptiveTrigger MinWindowWidth="{StaticResource WideMinWidth}" /> </VisualState.StateTriggers> <VisualState.Setters> <!-- TODO: change properties for wide view --> <Setter Target="CategoryFlyout.Placement" Value="Right"/> </VisualState.Setters> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Page.Resources> <Flyout x:Key="CategoryFlyout" x:Name="CategoryFlyout" Placement="Right"> <StackPanel Orientation="Vertical"> <TextBlock Text="Set category name:" HorizontalAlignment="Left"/> <TextBox Width="200" Margin="0,5,0,5" x:Name="CategoryTextBox" utils:ImmediateSourceUpdate.IsEnabled="True" utils:ImmediateSourceUpdate.Text="{x:Bind ViewModel.NewCategoryName, Mode=TwoWay}"/> <Button Content="Add" HorizontalAlignment="Right" Command="{x:Bind ViewModel.AddCategoryCommand}"/> </StackPanel> </Flyout> </Page.Resources> 行曾用于查看该问题是否与<Setter Target="MyHamburger.HamburgerBackground" Value="Green"/>本身相关,但即使这条线也无效(I&#39) ; d期望汉堡包按钮的背景为绿色,但它不会默认更改。

Tempate10 的模型包含一个 MainPage.xaml ,它打印当前的视觉状态,因此我确信我使用的是更正一个来设置Flyout,仍然没有结果。 没有任何事情发生,甚至在调试控制台中都没有错误。

我还尝试在Flyout内插入AdaptiveTrigger,但即使这样也无效。

您对此失败的原因有什么看法吗?

1 个答案:

答案 0 :(得分:0)

这不是模板10问题。 Flyout控件不适用于Mobile。请使用ContentDialog或自定义弹出窗口。我知道,这不理想;但我不是整个XAML平台的作者,只是模板10. :)

  

顺便提一下,他们的推理与这一思路有关:Flyout究竟应该如何看待手机?

在所有现实中,如果这是设置或其他内容,只需创建一个新页面。

祝你好运!