我有一扇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相关问答推荐

将Visual Studio更新到v17.9.3后,IDE关闭,dotnet.exe命令报告致命错误.内部CLR错误.(0x80131506)

DI通过对象的接口而不是实际类型来解析服务

创建仅包含msBuild.Target的Nuget包

使用CLR将数据从Excel导入SQL Server时出错

FileHelpers 未使用正确的日期格式

IIS 发布 ASP.NET Core 应用程序而不关闭 IIS 网站

更改列表中的值

双精度的 C++ 和 C# 十六进制值之间的差异

如何在 FtpWebRequest 之前判断 FTP 上是否存在文件

如何让 DateTimePicker 显示一个空字符串?

生产代码中的 System.Diagnostics.Debug.WriteLine

我什么时候应该在 C# 中使用使用块?

.Net 中的 Decimal.One、Decimal.Zero、Decimal.MinusOne 的用途是什么

C# 方法可以定义为采用的最大参数数是多少?

ASP.NET Core 等效于 ASP.NET MVC 5 的 HttpException

beforefieldinit 标志有什么作用?

在任务中捕获异常的最佳方法是什么?

在 .NET 中获取默认打印机的最佳方法是什么

SqlBulkCopy 的推荐批量大小是多少?

如何在 nuspec 中指定特定的依赖版本?