私はUWPプラットフォーム用の最初のアプリを作成していますが、 Template10に含まれているハンバーガー テンプレートから始めることにしました。
私がする必要があるのは、 Windows 10に含まれるGroove Musicアプリのハンバーガー メニューに似たもので、ハンバーガーのボタンをクリックすると が開き、新しいカテゴリが作成されます (プレイリストの場合と同様)。Flyout
すべてが正常に機能しFlyout
、問題なく開くだけで、モバイルでアプリを使用すると問題が発生します。仮想キーボードを生成し、画面の外Flyout
に移動するテキスト入力が含まれています。Flyout
私の目標は、アプリが狭い視覚状態にあるときにフライアウトをフルスクリーンで表示し、それ以外の場合はハンバーガーの右側に表示することです。
残念ながら、何も起こらないAdaptiveTrigger
ため、ページに s を追加しても機能しないようです。Shell.xaml
関連する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"/>
、問題がそれ自体に関連しているかどうかを確認するために使用される行がありますFlyout
が、この行でさえ機能しません (ハンバーガー ボタンの背景は緑色であると予想されますが、デフォルトから変更されません) )。
Tempate10のモデルには、現在の視覚状態を出力するMainPage.xamlFlyout
が含まれているため、正しいモデルを使用して を設定していると確信していますが、まだ結果はありません。デバッグコンソールのエラーでさえ、何も起こりません。
AdaptiveTrigger
の中に s を挿入しようとしましたHamburgerMenu
が、これでもうまくいきませんでした。
なぜこれが失敗するのかについてのアイデアはありますか?