关闭非按钮浮出控件
本文关键字:控件 按钮 | 更新日期: 2023-09-27 18:19:11
我正在制作一个附加到 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}">
...
我打开此浮出控件
FlyoutBase.ShowAttachedFlyout(LayoutRoot);
但是如何关闭它呢?我知道用户可以点击外部,但是当您单击重新启动或取消按钮时,我还需要关闭浮出控件...
给它起个名字
<Page.Resources>
<Flyout x:Name="myFlyout" x:Key="WinningPopup">
// ......
</Flyout>
</Page.Resources>
然后你可以只隐藏((
myFlyout.Hide();
FlyoutBase.Hide 方法
public void btnRestart_Click(object sender, RoutedEventArgs)
{
((((sender as Button).Parent as StackPanel).Parent as StackPanel).Parent as Flyout).Hide();
}
非常丑陋,但应该可以工作。
你需要先得到它。然后你可以打电话给Hide
.
FlyoutBase.GetAttachedFlyout((FrameworkElement)LayoutRoot).Hide();