当我按下BottomAppBar中的AppBarToggleButton时,我试图显示一个简单的Flyout(带有信息内容),但我的解决方案不起作用。 :(
这是我的代码:
<Page.BottomAppBar>
<CommandBar>
<AppBarToggleButton x:Uid="MapPageAppBarLegend" Label="" Icon="List">
<FlyoutBase.AttachedFlyout>
<Flyout>
<TextBlock Text="Informations here..."/>
</Flyout>
</FlyoutBase.AttachedFlyout>
</AppBarToggleButton>
</CommandBar>
</Page.BottomAppBar>
什么都没有出现..任何人都可以帮助我展示这个flayout? 非常感谢,对不起我的英语。 :)
PAME
答案 0 :(得分:11)
一切都清楚地描述at MSDN(那里也有一个非常好的例子):
什么都没有显示,因为 Flyouts 仅针对按钮自动打开(并且AppBarToggleButton不是来自Button
类):
当用户点击按钮时,附加到按钮的弹出按钮会自动打开。您无需处理任何事件即可打开弹出按钮。 (这包括从Button派生的控件,如AppBarButton
当然,您可以向Flyout
添加FrameworkElement
,但您必须手动打开它:
您可以使用FlyoutBase.AttachedFlyout附加属性将Flyout控件附加到任何FrameworkElement对象。如果您这样做,则必须响应FrameworkElement上的交互,例如Tapped事件,并在代码中打开Flyout。
在XAML中 - 在参考资料中定义Flyout
并将其附加到按钮:
<Page.Resources>
<Flyout x:Key="myFlyout" Placement="Top">
<TextBlock Text="Informations here..."/>
</Flyout>
</Page.Resources>
<Page.BottomAppBar>
<CommandBar>
<AppBarToggleButton x:Uid="MapPageAppBarLegend" Label="First" Icon="List"
FlyoutBase.AttachedFlyout="{StaticResource myFlyout}"
Click="AppBarToggleButton_Click"/>
</CommandBar>
</Page.BottomAppBar>
代码背后的事件:
private void AppBarToggleButton_Click(object sender, RoutedEventArgs e)
{
FlyoutBase.ShowAttachedFlyout((FrameworkElement)sender);
}