我想在整个页面上显示某种半透明/半透明的效果,然后在其顶部显示我的选项按钮,但我只是不知道如何操作,这让我发疯了!我已经在很多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/

10-11 05:21