Windows runtime 是否可以暂时推迟显示AppBarButton';什么是附属飞行?

Windows runtime 是否可以暂时推迟显示AppBarButton';什么是附属飞行?,windows-runtime,winrt-xaml,winrt-async,flyout,winrt-component,Windows Runtime,Winrt Xaml,Winrt Async,Flyout,Winrt Component,我在AppBarButton中嵌入了一个弹出按钮,如下所示: <AppBarButton x:Name="appbarbtnOpenPhotosets" Icon="OpenFile" Label="Open Existing Photoset[s]" AutomationProperties.Name="Open File" Tapped="appbarbtnOpenPhotosets_Tapped" > <Button.Flyout> . . .

我在AppBarButton中嵌入了一个弹出按钮,如下所示:

<AppBarButton x:Name="appbarbtnOpenPhotosets" Icon="OpenFile" Label="Open Existing Photoset[s]" AutomationProperties.Name="Open File" Tapped="appbarbtnOpenPhotosets_Tapped" >
    <Button.Flyout>
    . . .
    </Button.Flyout>
</AppBarButton>

. . .
在某些情况下,我想首先让用户有机会在看到弹出按钮之前重命名文件。我试着看看这样做是否有效:

async private void appbarbtnOpenPhotosets_Tapped(object sender, TappedRoutedEventArgs args)
{
    // Want to conditionally postpone the operation
    bool myBucketsGotAHoleInIt = PhotraxUtils.GetLocalSetting(CAINT_BUY_NO_BEER);
    if (myBucketsGotAHoleInIt)
    {
        MessageDialog dlgDone = new MessageDialog("Can you see me now?");
        await dlgDone.ShowAsync();
        args.Handled = false; // <= adding this made no difference
    }
}
async private void appbarbtnOpenPhotosets_Tapped(对象发送器,tappedroutedventargs参数)
{
//想有条件地推迟手术吗
bool myBucketsGotAHoleInIt=PhotraxUtils.GetLocalSetting(买不买啤酒);
if(myBucketsGotAHoleInIt)
{
MessageDialog dlgDone=newmessagedialog(“你现在能看见我吗?”);
等待dlgDone.ShowAsync();

args.Handled=false;//当您单击控件时,附加到按钮的弹出按钮将自动打开。 如果不希望它自动打开,则需要将其附加到另一个控件

FlyoutBase.ShowAttachedFlyout(frameworkElement);
示例取自:

因此,在你的情况下:

async private void appbarbtnOpenPhotosets_Tapped(object sender, TappedRoutedEventArgs args)
{
    // Want to conditionally postpone the operation
    bool myBucketsGotAHoleInIt = PhotraxUtils.GetLocalSetting(CAINT_BUY_NO_BEER);
    if (myBucketsGotAHoleInIt)
    {
        MessageDialog dlgDone = new MessageDialog("Can you see me now?");
        await dlgDone.ShowAsync();
        // New code
        FlyoutBase.ShowAttachedFlyout((FrameworkElement)sender);
    }
}
如果您无法更改控件,您应该能够使用我用
按钮发布的代码,而不是
文本块
。我不确定这一点,但您可以试试

async private void appbarbtnOpenPhotosets_Tapped(object sender, TappedRoutedEventArgs args)
{
    // Want to conditionally postpone the operation
    bool myBucketsGotAHoleInIt = PhotraxUtils.GetLocalSetting(CAINT_BUY_NO_BEER);
    if (myBucketsGotAHoleInIt)
    {
        MessageDialog dlgDone = new MessageDialog("Can you see me now?");
        await dlgDone.ShowAsync();
        // New code
        FlyoutBase.ShowAttachedFlyout((FrameworkElement)sender);
    }
}