更改背景不透明度而不更改内容不透明度

时间:2012-09-28 20:23:24

标签: .net wpf opacity

我想知道如何在不影响内部子控件的情况下更改WPF窗口背景的不透明度。当我将Window属性'Opacity'更改为0.5时,我会得到一个半透明窗口,但窗口内的图像也继承了0.5不透明度值,那么我怎么才能只为窗口设置不透明度呢?

1 个答案:

答案 0 :(得分:33)

窗口是所有内容的父容器,因此在窗口上设置不透明度将影响它包含的所有内容。我想您要做的是更改Opacity的{​​{1}}。

启用窗口以实现透明度需要添加几件事。首先,您需要设置Window.Background并设置Window.AllowsTransparency = TrueWindow.WindowStyle = None在窗口镶边中创建一个没有最小化,最大化和关闭按钮的窗口,因此您必须自己在应用程序中处理该窗口以及调整窗口大小和移动窗口。完成所有操作后,您可以将WindowStyle.None设置为在其上设置Window.Background的画笔。

以下代码示例将向您展示如何使窗口始终透明,并将窗口背景的不透明度设置为具有不同的不透明度。

Opacity

如果您只希望窗口中的元素可见,则始终可以将窗口背景设置为透明。