我想知道如何在不影响内部子控件的情况下更改WPF窗口背景的不透明度。当我将Window属性'Opacity'更改为0.5时,我会得到一个半透明窗口,但窗口内的图像也继承了0.5不透明度值,那么我怎么才能只为窗口设置不透明度呢?
答案 0 :(得分:33)
窗口是所有内容的父容器,因此在窗口上设置不透明度将影响它包含的所有内容。我想您要做的是更改Opacity
的{{1}}。
启用窗口以实现透明度需要添加几件事。首先,您需要设置Window.Background
并设置Window.AllowsTransparency = True
。 Window.WindowStyle = None
在窗口镶边中创建一个没有最小化,最大化和关闭按钮的窗口,因此您必须自己在应用程序中处理该窗口以及调整窗口大小和移动窗口。完成所有操作后,您可以将WindowStyle.None
设置为在其上设置Window.Background
的画笔。
以下代码示例将向您展示如何使窗口始终透明,并将窗口背景的不透明度设置为具有不同的不透明度。
Opacity
如果您只希望窗口中的元素可见,则始终可以将窗口背景设置为透明。