首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何延迟Button.Flyout的出现?

如何延迟Button.Flyout的出现?
EN

Stack Overflow用户
提问于 2016-06-08 00:05:29
回答 1查看 199关注 0票数 2

在我的按钮的click事件中,我有两个异步的方法,我希望它们在按钮的弹出内容显示之前完成。有没有什么办法延迟弹出内容的显示,或者当它关联的按钮被单击时,它总是显示出来?

EN

回答 1

Stack Overflow用户

发布于 2016-06-08 13:21:58

在这种情况下,不要将弹出按钮与按钮相关联,因为它将自动显示。相反,应该在资源或其他元素中定义弹出按钮,然后从代码中调用它。示例可能如下所示:

代码语言:javascript
复制
<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>

代码隐藏:

代码语言:javascript
复制
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);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37684226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档