gpt4 book ai didi

c# - 如何延迟 Button.Flyout 的出现?

转载 作者:行者123 更新时间:2023-11-30 23:24:38 26 4
gpt4 key购买 nike

在按钮的单击事件中,我有几个异步方法,我希望它们在显示按钮的 Flyout 内容之前完成。是否有延迟显示 Flyout 内容的方法,或者它是否会在单击与其关联的按钮时始终显示?

最佳答案

在您的情况下,不要将弹出窗口与按钮相关联,因为它会自动显示。相反,在资源或其他元素中定义您的浮出控件,然后从代码中调用它。示例示例如下所示:

<Grid x:Name="RootGrid" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<FlyoutBase.AttachedFlyout>
<MenuFlyout>
<MenuFlyoutItem Text="Edit"/>
<MenuFlyoutItem Text="Delete"/>
</MenuFlyout>
</FlyoutBase.AttachedFlyout>
<Button Content="Click" Click="Button_Click">
<Button.Resources>
<MenuFlyout x:Key="secondFlyout">
<MenuFlyoutItem Text="Edit"/>
<MenuFlyoutItem Text="Delete"/>
</MenuFlyout>
</Button.Resources>
</Button>
</Grid>

代码隐藏:

private async void Button_Click(object sender, RoutedEventArgs e)
{
await Task.Delay(2000); // your heavy job you want ot wait for
var thisButton = sender as FrameworkElement;
// first method
(thisButton.Resources["secondFlyout"] as FlyoutBase).ShowAt(thisButton);
// second method
// FlyoutBase.GetAttachedFlyout(RootGrid).ShowAt(thisButton);
}

关于c# - 如何延迟 Button.Flyout 的出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37684226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com