我正在将一个弹出窗口附加到LayoutRoot网格。
<Page.Resources>
<Flyout x:Key="WinningPopup">
<StackPanel Margin="50,10">
<TextBlock x:Uid="Flyout_VictoryTitle"
Text="Victory!"
Style="{StaticResource MessageDialogTitleStyle}"
Margin="0,0,0,15"/>
<TextBlock x:Name="Flyout_VictoryDescription"
x:Uid="Flyout_VictoryDescription"
Text="Congratulations!
Score: "
Style="{StaticResource MessageDialogContentStyle}" />
<StackPanel Orientation="Horizontal">
<Button x:Name="btnRestart"
x:Uid="btnRestart"
Click="btnRestart_Click"
Content="[Restart]"
Margin="10"/>
<Button x:Name="btnCancel"
x:Uid="btnCancel"
Click="btnCancel_Click"
Content="[Cancel]"
Margin="10"/>
</StackPanel>
</StackPanel>
</Flyout>
</Page.Resources>
<Grid x:Name="LayoutRoot" FlyoutBase.AttachedFlyout="{StaticResource WinningPopup}">
...
我用
打开这个FlyoutFlyoutBase.ShowAttachedFlyout(LayoutRoot);
但如何关闭呢?我知道用户可以在外面点击,但是当你点击重新启动时我也需要关闭弹出按钮取消按钮......
答案 0 :(得分:6)
给它一个名字
<Page.Resources>
<Flyout x:Name="myFlyout" x:Key="WinningPopup">
// ......
</Flyout>
</Page.Resources>
然后你可以隐藏()
myFlyout.Hide();
答案 1 :(得分:1)
public void btnRestart_Click(object sender, RoutedEventArgs)
{
((((sender as Button).Parent as StackPanel).Parent as StackPanel).Parent as Flyout).Hide();
}
非常难看,但应该工作。
答案 2 :(得分:-1)
你需要先得到它。然后你可以拨打Hide
。
FlyoutBase.GetAttachedFlyout((FrameworkElement)LayoutRoot).Hide();