1

私は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が、これでもうまくいきませんでした。

なぜこれが失敗するのかについてのアイデアはありますか?

4

1 に答える 1