当用户单击某个按钮时,我的主窗口背景颜色为Background="#005075"
,弹出一些小窗口,然后我改变了主窗口的不透明度,如Opacity="0.5"
,问题在于背景打火机,我该如何在WPF中做暗调?
答案 0 :(得分:2)
我做了很多类似的事情。最好的方法是在Window中有几个顶级网格,然后使用它们而不是Window本身。
例如,我会做这样的事情:
<Window x:Class="WpfApp9.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp9"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<!-- Background grid with 100% opacity -->
<Grid Background="#005075"/>
<!-- main grid, which sits on top of the background grid -->
<Grid x:Name="MainGrid" Background="Transparent" Opacity="0.5">
<!-- Windows controls go here -->
</Grid>
</Grid>
</Window>
答案 1 :(得分:1)
不透明度不会使其变暗。您可以做的是,可以制作某种面板,该面板在整个主窗口中拉伸,并且具有黑色和0.2或类似的不透明度,并且默认情况下主要是隐藏的。而当您要禁用主窗口时,则使该面板可见。这应该可以解决您的问题。
如果您在中间添加了一些动画或类似内容,您也可以将其用作加载面板。因此,它将覆盖您主窗口的所有内容,并且不允许用户在禁用时与您的主窗口进行交互。
P.S。不透明度为0.2的黑色面板应放置在主窗口的所有控件上