我有一个带有选项菜单的应用栏按钮:
<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>
弹出窗口在页面资源部分中定义。
在我的代码中,我去了:
MediaTitle.ShowAt(AddButton);
但我得到错误“放置目标需要在可视树中”。
这是否发生是因为按钮位于AppBar而不是“正确”页面上?如果有,有办法解决这个问题吗?
答案 0 :(得分:2)
事实证明答案很简单 - 我只需要确保应用栏可见。然后,弹出按钮显示在应用栏上的按钮附近。
由于我没有显示的逻辑/代码,应用栏之前已关闭。