c# - 如何通过在页面上显示半透明控件来禁用Windows Phone上的所有控件?

标签 c# mvvm windows-phone-8 expression-blend

我想在整个页面上显示某种半透明/半透明的效果,然后在其顶部显示我的选项按钮,但我只是不知道如何操作,这让我发疯了!我已经在很多wp8应用程序中看到了它,因此它是可行的,但我只是不知道该怎么做!

一旦显示了这种半透明/半透明的效果,我希望它消失(如果单击或单击我的选项按钮之一),然后将屏幕恢复原状或相应地执行操作。

我已经设法通过使用 Storyboard 设置背景颜色来做到这一点,但奇怪的是,一旦显示并且我的选项按钮出现,它们看起来就很好了,但是一旦 Storyboard 表完成,该按钮也将被禁用,这看起来是错误的! !

像在窗口上显示半透明对话框一样,具有“禁用”效果的正确方法是什么?

任何想法,建议或代码将不胜感激。

谢谢。

最佳答案

您可能使它变得比所需的复杂。例如,考虑以下XAML:

<Grid x:Name="LayoutRoot">
  <Grid.RowDefinitions>
    <RowDefinition Height="*" />
  </Grid.RowDefinitions>

  <Grid x:Name="ContentRoot">
    ...
  </Grid>

  <Grid x:Name="ContentOverlay" Background="#AA000000" Visibility="Collapsed">
    ...
  </Grid>
</Grid>

ContentRoot和ContentOverlay都将 anchor 定在LayoutRoot网格的左上方,并跨越行高。它们将按照声明的顺序从最远到最接近堆叠,因此ContentRoot将呈现在ContentOverlay下。只需根据用户输入来操纵ContentOverlay的可见性。

或者,您可以将ContentOverlay的Opacity设置为0,同时将折叠的可见性设置为0(必需的,这样它就不会拦截对下面的ContentRoot子控件的匹配),并在Blend中使用 Storyboard 淡入淡出。即使只有0.3秒左右的时间,对用户来说,过渡似乎也比较干净。

关于c# - 如何通过在页面上显示半透明控件来禁用Windows Phone上的所有控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18278905/

相关文章:

windows-phone-7 - 无法创建 "ViewModelLocator"的实例

wpf - 在 MVVM 中设置可见性的最佳方法

javascript - Windows Phone 8 Web 浏览器 JavaScript 不工作

windows-phone-8 - 在没有 SD 卡的 Windows Phone 8 上安装应用程序

c# - 在ABP中从CrudAppService检索子实体

wpf - 从PasswordBox获取密码

Freebase RDF 转储的 C# 解析仅产生 1150 万个 N-Triples 而不是 19 亿个

visual-studio - Windows Phone 模拟器在 Cordova 多设备混合应用程序构建期间退出,代码为 8

c# - XML 比较,用于检查窗口应用程序是否相同或不同

c# - 算法:里程表/蛮力