制作一个透明窗口,用作绘画的画布。

3

我在Visual Studio上开发一个应用程序,但在实现注释功能时遇到了问题。基本上,我想使用鼠标在屏幕上画图。起初我查看了一些其他问题,认为可以创建一个透明窗口来绘制,但完全透明的窗口会导致我的鼠标点击触发其他窗口,这是行不通的。

然后我尝试将窗口设置为极低的不透明度并以白色背景为底色,这样屏幕就会有轻微的阴影,这还算可以接受。然而,对整个窗口进行这样的操作会使我画的线也具有极低的不透明度,因此基本上看不见。

是否有办法使用透明窗口解决此问题,或者我必须采取诸如截图并制作与窗口大小相同的图片供用户绘制等方法?如果可能的话,我希望避免这种不够优雅的解决方案,并且对于应用程序中的其他功能,我想尽可能地避免这种情况。但如果那似乎是唯一的方法,那么希望能得到实施方面的一些帮助。

谢谢! Kevin


1
这是关于WPF、WinForms还是其他的? - thumbmunkeys
啊,抱歉,我正在使用WPF。 - Kevin
1
不要设置窗口的不透明度,而是使用低不透明度的背景,例如#01FFFFFF。 - Clemens
哇,那绝对有效!谢谢,我不知道还有透明背景。 - Kevin
1个回答

3
不要设置窗口的不透明度,而应该使用低不透明度的背景,例如#01FFFFFF:
<Window ... Background="#01FFFFFF">
    ...
</Window>

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接