关于 c#:How to disable a Grid (Panel) in XAML Metro app?

How to disable a Grid (Panel) in XAML Metro app?

我想在 XAML Metro App 中模拟模式对话框。

所以我打算在所有控件上设置 .IsEnabled = false ,除了将构成模式对话框的控件。

显然 IsEnabled 不在 Grid 不在 Panel 不在 FrameworkElement 中。如何禁用它而不使用户控制它?

我猜 Sinofsky 走了不少弯路,以至于整个事情现在更像是 Escher 楼梯。我正在失去信心。请帮忙


对不起,我参加聚会有点晚了……

这是我创建模态弹出窗口的方法 – 我使用了一个弹出对话框,其中顶部和底部部分是透明的,因此它后面的任何内容都会显示出来。当弹出窗口打开时,我将其大小设置为覆盖整个屏幕。

弹出窗口的顶部和底部也设置为自动调整大小(高度 = *),以便它们填满整个屏幕的顶部和底部。这可以防止任何输入进入下面的网格。

这是我在 Visual Studio 中弹出窗口的屏幕截图:
enter


不幸的是,似乎没人知道(除了 Skakun 先生,他给出了错误的答案并且从不费心修改它)。

因此我的解决方案(最简单的)是使有问题的元素隐藏 – 我找不到任何其他方法来”禁用”网格。

如果我想正确禁用它,我将不得不编写一个递归函数来查找网格子项中的所有 FrameworkElements 并设置 IsEnabled = false。


原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/269623.html

(0)
上一篇 2022年6月22日
下一篇 2022年6月22日

相关推荐

发表回复

登录后才能评论