0

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

一旦显示此半透明/半透明效果,我希望它在单击或单击我的选项按钮之一时消失,并恢复屏幕原样或执行相应的操作。

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

给出“禁用”效果的正确方法是什么,就好像您在窗口上显示了一个半透明的对话框一样。

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

谢谢。

4

2 回答 2

5

您可能会让这变得比它需要的更复杂。例如,考虑以下 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 都将锚定在 LayoutRoot 网格的左上角并跨越行高。它们将按照声明的顺序从最远到最近堆叠,因此 ContentRoot 将呈现在 ContentOverlay 下方。只需根据用户输入操作 ContentOverlay 的可见性。

或者,您可以将 ContentOverlay 的不透明度设置为 0 以及折叠的可见性(这是必需的,因此它不会拦截对下面 ContentRoot 子控件的点击)并使用 Blend 中的情节提要淡入淡出。对于用户来说,这可能看起来像是一个稍微干净的过渡,即使它只有 0.3 秒左右。

于 2013-08-16T20:49:00.527 回答
0

使用 Blend 指定 VisualStates(视图 | 状态。然后是“状态”选项卡。)您可以使用 VisualStateManager.GoToState 在代码中的状态之间切换。一种状态是正常的,另一种状态是禁用所有控件。麦克风

于 2013-08-16T19:48:11.597 回答