Uwp 覆盖在弹出按钮上方

Uwp 覆盖在弹出按钮上方,uwp,z-index,flyout,Uwp,Z Index,Flyout,我有一个弹出按钮,当用户更改其上的数据时,我希望在加载内容时使其完全不可访问。我已经通过其他控件实现了这一点,在Z索引的最高点有一个带有ProgressRing的网格,我在加载数据之前显示,然后隐藏 问题是弹出按钮的呈现高于其他所有内容,这使得它仍然可以访问。即使将页面的“IsEnabled”属性设置为“False”,也可以使其中的控件保持可见 以下是问题的屏幕截图: 它看起来像什么: (组合框是交互式的) 它应该是什么样子的: (组合框不是交互式的) 关于如何解决这个问题有什么想法吗?不确

我有一个弹出按钮,当用户更改其上的数据时,我希望在加载内容时使其完全不可访问。我已经通过其他控件实现了这一点,在Z索引的最高点有一个带有ProgressRing的网格,我在加载数据之前显示,然后隐藏

问题是弹出按钮的呈现高于其他所有内容,这使得它仍然可以访问。即使将页面的“IsEnabled”属性设置为“False”,也可以使其中的控件保持可见

以下是问题的屏幕截图:

它看起来像什么:

(组合框是交互式的)

它应该是什么样子的:

(组合框不是交互式的)


关于如何解决这个问题有什么想法吗?

不确定我是否正确理解您的意思,但您可以尝试使用弹出型按钮内容的IshitteVisible和Opacity属性。我举了一个简单的例子来说明它的工作原理——page的XAML:


以及背后的代码:

公共类NullableToBool:IValueConverter
{
公共对象转换(对象值、类型targetType、对象参数、字符串语言)
{
返回值为bool?(bool)值:false;
}
公共对象转换回(对象值、类型targetType、对象参数、字符串语言)
{
抛出新的NotImplementedException();
}
}
公共密封部分类主页面:第页,INotifyPropertyChanged
{
公共事件属性更改事件处理程序属性更改;
private void RaiseProperty(字符串名称)=>PropertyChanged?.Invoke(这是新的PropertyChangedEventArgs(名称));
private bool isActive=true;
公共福利活动
{
获取{return isActive;}
set{isActive=value;RaiseProperty(nameof(isActive));}
}
专用双弹出型不透明度=1.0;
公共双弹出按钮
{
获取{return flyoutOpacity;}
设置{flyoutOpacity=value;RaiseProperty(nameof(flyoutOpacity));}
}
公共主页()
{
this.InitializeComponent();
}
私有异步无效按钮(对象发送方、路由目标方)
{
IsActive=假;
弹出不透明度=0.1;
等待任务。延迟(3000);
IsActive=true;
弹出不透明度=1.0;
(发送方作为切换按钮)。IsChecked=false;
}
}

如果您只想在ProgressRing显示时阻止UI。您可以使用模板10中的

几乎每个应用程序都需要显示某种形式的模式对话框——一种UI元素,它阻止与应用程序其余部分的交互,直到用户取消它或某个应用程序任务完成