c# - 制作一个透明窗口作为绘图的 Canvas

标签 c# wpf visual-studio annotations transparent

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

然后我尝试为白色背景的窗口设置一个极低的不透明度,这导致屏幕有轻微的阴影,这很好。然而,对整个窗口执行此操作导致我绘制的线也具有极低的不透明度,因此基本上保持不可见。

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

谢谢! 凯文

最佳答案

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

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

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

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

关于c# - 制作一个透明窗口作为绘图的 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25776264/

相关文章:

c# - 体系结构层图验证在 .Net 核心中不起作用

WPF 组合和 Rx FromEvent 模式

.net - 有没有办法以编程方式提取接口(interface)?

c++ - MOCK_METHOD 名称后面必须跟 '::' 必须是类或命名空间名称

xml - Visual Studio 2013 IntelliSense 无法使用特定的 web.config 文件

c# - Visual Studio 2013 查询编辑器错误和 MYSQL

c# - 有没有办法从代码隐藏中读取 System.Web.Optimization 内容?

c# - 什么会导致不为 UDP 数据报计算 IP header 校验和?

c# - 如何使用 MVVM 将不同列表绑定(bind)到每行中的 DataGridComboBoxColumn

c# - Path.GetFullPath 在 C# 中返回错误的路径