带边框的透明窗口

3

我正在尝试制作一个小型的屏幕截图程序,我正在使用带有边框的小型WPF窗口。这应该作为“视口”功能,因此窗口内部(在边框内部)的所有内容都应该被截图。然而,当我将窗口的透明度设置为0时,我无法看到我的边框。有没有办法使我的网格完全透明,并仍然保留其周围2像素的黑色边框?

1个回答

7

不确定您是想要窗口还是仅带有边框的网格透明。

这会在窗口周围绘制边框:

<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525" 
        AllowsTransparency="True" 
        WindowStyle="None" 
        Background="Transparent" 
        BorderThickness="2" 
        BorderBrush="Black">
    <Grid>

    </Grid>
</Window>

这只是围绕网格绘制边框的操作:

<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525" AllowsTransparency="True" WindowStyle="None" Background="Transparent">
    <Border BorderThickness="2" BorderBrush="Black">
        <Grid>

        </Grid>
    </Border>
</Window>

谢谢,它能工作了。唯一的问题是我没有考虑到它实际上是透明的,也就是说,我的鼠标事件不会被触发(拖动窗口)。有什么想法吗? - Brian Hvarregaard
我曾经也遇到过同样的问题,决定像 Snagit 一样处理。每当用户开始捕获模式时,对整个桌面进行全屏截图,并将此截图作为完整覆盖层显示在整个桌面上(还要考虑多监视器环境,因此始终使用 VirtualScreen)。如果您想执行例如在屏幕上移动捕获矩形之类的动画,这样做的性能也更好。 - nik

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