我有一扇windows ,外观如下:

在此处输入图像描述

然而,我想要的是,如果Window的主Grid中的Button个控件(中间有文本的灰色控件)的不透明度为1,完全不透明.当我继承这个项目时,在opening Window标记内,顶层的不透明度设置为0.75.据我所知,这将自动对所有 children 强制执行,并表示 children 不能凌驾于此.

那么,我如何才能实现透明的背景,但不透明的按钮?到目前为止,我(作为WPF的相对新手)发现的唯一方法是有两个单独的窗口,一个是透明背景,另一个没有背景,但包含不透明控件.这是非常黑客虽然,我想避免它,如果我可以的话.

如果有人要求,我可以提供代码,但它实际上非常简单,比如一个Window,windowstyle=none,opacity.75包含一个Grid,其中包含一些非常基本的Button etc控件.

有没有人以前造过这样的Window,或者有过生成这样的Window的洞察力?谢谢.

推荐答案

与其设置窗口的不透明度,不如设置其背景的不透明度:

<Window x:Class="WpfApplication3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525"
        AllowsTransparency="True" WindowStyle="None">
    <Window.Background>
        <SolidColorBrush Opacity="0.5" Color="White"/>
    </Window.Background>
    <Grid>
        <Button Width="200" Height="50">button</Button>
    </Grid>
</Window>

.net相关问答推荐

我的Azure应用服务从哪里获取应用设置?

Azure SignalR 和微服务

是否必须使用 Visual Studio 预览才能使用 MAUI?

在 .NET 中使用 AES 解密时缺少后半字节

当 Func 委托需要接口作为参数时,它是如何工作的?

无法加载文件或程序集 不支持操作. (来自 HRESULT 的异常:0x80131515)

ICommand MVVM 实现

使用 .NET 在 Windows 中创建弹出式 toastr 通知

不同命名空间中的部分类

指定的版本字符串不符合要求的格式 - major[.minor[.build[.revision]]]

托管和非托管代码、内存和大小有什么区别?

C#:内存不足异常

msbuild,定义条件编译符号

C# 属性实际上是方法吗?

将属性序列化为元素中的 Xml 属性

变量MyException已声明但从未使用

如何允许程序集(单元测试)访问另一个程序集的内部属性?

如何将 System.Type 转换为其可为空的版本?

如何以编程方式删除 WebClient 中的 2 个连接限制

如何判断对象是否已在 C# 中释放