<分区>
我现在开始使用 WPF,我不知道是否可行,但应该可行。
我试图在我的表单中创建一个完全透明的区域,删除矩形内的所有内容(这些内容将是一个 AxWindowsMediaPlayer,如下所示),并且能够看到我窗口后面的内容。
在 WinForms 中使用 TransparencyKey 和面板是可能的,但 WinForms 不能满足我对这个项目的需求。
<分区>
我现在开始使用 WPF,我不知道是否可行,但应该可行。
我试图在我的表单中创建一个完全透明的区域,删除矩形内的所有内容(这些内容将是一个 AxWindowsMediaPlayer,如下所示),并且能够看到我窗口后面的内容。
在 WinForms 中使用 TransparencyKey 和面板是可能的,但 WinForms 不能满足我对这个项目的需求。
最佳答案
这应该可以解决问题:
<Window
[...]
Title="MainWindow" MinHeight="200" MinWidth="400" WindowStyle="None" AllowsTransparency="True">
<Window.OpacityMask>
<ImageBrush
ViewportUnits="RelativeToBoundingBox"
TileMode="None"
ImageSource="/Images/rect.png"
/>
</Window.OpacityMask>
<!-- many many controls-->
</Window>
WindowStyle
必须是 none
AllowTransparency
需要为真
而图像源只是一个图像,中间有一个矩形透明部分。你也可以动态地画这个!
关于c# - 如何在 WPF 窗口中显示 "punch a hole",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55057019/