1

オプションのメニューを備えたアプリバーボタンがあります。

<AppBarButton x:Name="AddButton" x:Uid="AddItem" Icon="Add" RequestedTheme="Dark">
     <AppBarButton.Flyout>
         <MenuFlyout>
              <MenuFlyoutItem Label="Option 1" Click="MenuFlyoutItem_Click" Tag="option1"/>
              <MenuFlyoutItem Label="Option 2" Click="MenuFlyoutItem_Click" Tag="option2"/>
              <MenuFlyoutItem Label="Option 3" Click="MenuFlyoutItem_Click" Tag="option3"/>
         </MenuFlyout>
     </AppBarButton.Flyout>
 </AppBarButton>

これは、ユーザーがオプションを選択すると、ボタンの横にフライアウト ウィンドウが表示され、ユーザーが詳細情報を提供できるようにするためです。

<Flyout x:Name="MediaTitle">
    <Grid>
         <TextBlock Text"Title" Style="{StaticResource BaseTextBlockStyle}" />
         <TextBox x:Name="descTitle" HorizontalAlignment="Left" Margin="0,30,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="300" />
         <Button x:Name="descTitle_OK" x:Uid="OK" HorizontalAlignment="Right" Margin="0,73,0,0" VerticalAlignment="Top" Click="DescTitle_OKClick" />
    </Grid>
</Flyout>

Flyout は、ページ リソース セクションで定義されます。

私のコードでは、次のようにします。

MediaTitle.ShowAt(AddButton);

しかし、「配置ターゲットはビジュアルツリーにある必要があります」というエラーが表示されます。

これは、ボタンが「適切な」ページではなく AppBar にあるために発生していますか? もしそうなら、これを修正する方法はありますか?

4

1 に答える 1

2

答えは非常に単純であることがわかりました。アプリ バーが表示されていることを確認する必要があっただけです。フライアウトは、アプリ バーのボタンの近くに表示されます。

表示されていないロジック/コードが原因で、アプリ バーは以前に閉じられていました。

于 2014-02-17T14:03:20.477 に答える