Windows runtime 是否可以暂时推迟显示AppBarButton';什么是附属飞行?
我在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 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);
}
}