【问题标题】:How do I add a color film to entire application如何将彩色胶片添加到整个应用程序
【发布时间】:2015-10-26 16:21:25
【问题描述】:

这可能是一个非常典型的要求,但有没有人尝试过申请彩色胶片/封面。所以我希望当用户执行一个动作时,整个应用程序都会得到一个红色的电影。它不仅仅是改变控件的颜色,它就像放置一个彩色胶片,使所有白色的东西都变成红色,绿色的东西变成黄色,黑色的东西仍然是黑色等等..

我知道我没有对这个问题添加任何尝试,因为我尝试的一切都毫无意义,我唯一能想到的就是调整每种颜色的 RGB,以便为其添加特定值。

但在这里我只想问有没有一种更简单的方法可以在我的应用程序上放置一个红色半透明窗格?

谢谢

【问题讨论】:

  • 只是<Window> <Grid> <YourContent/> <Border Background="Red" Opacity="0.3"/></Grid></Window>...
  • 这就是你要找的东西吗:stackoverflow.com/questions/26290303/… ?
  • 您希望“电影”下方的控件仍然具有交互性吗?
  • 高核!你不会相信..我所尝试的一切!!,这与命中测试不可见的作品!请移步回答
  • yes d.moncada,但我想最好的方法是禁用命中测试可见性不是吗?

标签: c# wpf colors


【解决方案1】:

就像@HighCore 建议的那样,您可以简单地将控件放在其他所有内容之上,方法是将其放在 XAML 的底部:

<Window>
    <Grid>
        <!-- Your Content Here -->
        <Grid Background="Red" Opacity="0.3" />
    </Grid>
</Window>

在最后一个网格上,您还可以根据应用程序的需要将一些东西绑定到它,例如

<Window>
    <Window.Resources>
        <BooleanToVisibilityConverter x:Key="BoolToVis" />
    </Window.Resources>
    <Grid>
        <!-- Your Content Here -->
        <Grid Background="{Binding MyColorCover}" Visbility="{Binding CoverIsVisible, Converter={StaticResource BoolToVis}}" Opacity="{Binding CoverOpacity}" />
    </Grid>
</Window>

这将允许您在运行时更改电影封面的颜色/不透明度/可见性。这假设您正确设置了绑定/MVVM 内容,这完全是另一个主题。

【讨论】:

  • 请记住,这不适用于组合框下拉菜单、下拉菜单、上下文菜单或任何其他类型的弹出窗口。
  • highCore 值得拥有这个! :)
猜你喜欢
  • 2013-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-06
  • 1970-01-01
  • 1970-01-01
  • 2020-04-27
相关资源
最近更新 更多