c# - 具有透明背景且包含不透明控件的 WPF 窗口

标签 c# .net wpf user-interface transparency

<分区>

我有一个具有以下外观的窗口:

enter image description here

然而,我想要的是 Button 控件(中间带有文本的灰色按钮)在 Window 的主 Grid< 中 的不透明度为 1,完全不透明。当我继承这个项目时,不透明度在顶层设置为 0.75,在开始的 Window 标签内。现在据我了解,这将自动对所有 child 强制执行,并且说 child 不能覆盖。

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

如果需要,我可以提供代码,但它真的很简单,就像一个 Window with windowstyle=none 和 opacity .75 包含一个 Grid,其中包含一些非常基本的Button 等控件。

有没有人以前构建过这样的 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>

关于c# - 具有透明背景且包含不透明控件的 WPF 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21461017/

相关文章:

c# - 在 Window Loaded WPF C# 中跳过代码

c# - 如何使用 xamarin.forms 在弹出窗口中创建表单?

c# - 如何在.NET CORE类库中添加service.AddDbContext

.net - NodaTime如何知道城市与时区的关系?

c# - 两个相等的 IPv6 IPAddress 实例返回不同的 GetHashCode 结果

.net - 如何在 LINQ 中预加载整个 SQL 表?

c# - 需要知道当另一个元素失去焦点时哪个元素获得焦点

c# - 为什么 API 应该返回 'void' ?

c# - 为json数组的所有对象添加属性

.net - 从 Entity Framework 绑定(bind)数据源时,WPF 设计器不会加载