制作一个透明的窗口作为绘图的画布

本文关键字:窗口 绘图 一个 透明 | 更新日期: 2023-09-27 18:21:30

我一直在Visual Studio中开发一个应用程序,无意中发现了一个要实现的注释功能的问题。基本上,我希望能够用我的鼠标在屏幕上画画。我最初在这里检查了一些其他问题,并想制作一个透明的窗口来绘制,但使窗口完全透明会导致我的鼠标点击触发其他窗口,这是行不通的。

然后,我尝试为白色背景的窗口设置一个极低的不透明度,这会使屏幕稍微变暗,这很好。然而,对整个窗口这样做会导致我画的线也具有极低的不透明度,因此基本上保持不可见。

有没有一种方法可以使用透明窗口解决这个问题,或者我必须做一些事情,比如截屏并制作一张窗口大小的图片供用户绘制?这似乎是一个不那么优雅的解决方案,对于我的应用程序中的其他功能,如果可能的话,我希望避免这种情况,但如果这似乎是唯一的方法,我们将非常感谢在实现中提供一些帮助。

谢谢!Kevin

制作一个透明的窗口作为绘图的画布

不要设置窗口的不透明度,而是使用低不透明度的背景,例如#01FFFFFFF:

<Window ... Background="#01FFFFFF">
    ...
</Window>

或者,您可以显式创建一个SolidColorBrush作为背景,并将其"不透明度"设置为一个小值:

<Window ...>
    <Window.Background>
        <SolidColorBrush Color="White" Opacity="0.01"/>
    </Window.Background>
    ...
</Window>