【问题标题】:Transparent window with a border带边框的透明窗口
【发布时间】:2012-03-06 08:46:12
【问题描述】:

我正在尝试制作一个小屏幕截图程序,我正在制作一个带边框的小 WPF 窗口。这应该起到“视口”的作用,因此窗口内(边界内)的所有内容都应该被截屏​​。当我将窗口的透明度设置为 0 时,我怎么看不到我的边框。关于如何使我的网格完全透明并且仍然在其周围保留 2 px 黑色边框的任何想法?

【问题讨论】:

    标签: wpf


    【解决方案1】:

    不确定你是想要窗口还是只需要带边框的透明网格。

    在窗口周围画一个边框:

    <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>
    

    这只是在网格周围画一个 broder:

    <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>
    

    【讨论】:

    • 感谢它有效,唯一我没有考虑到的是它实际上是透明的,也就是说,我的鼠标事件没有被触发(拖动窗口) - 有什么想法吗?跨度>
    • 我在同样的问题上苦苦挣扎,并决定像 Snagit 那样做。每当用户开始捕获模式时,对桌面进行完整屏幕截图,并将此屏幕截图显示为整个桌面的完整覆盖图(也考虑多显示器环境,因此始终使用 VirtualScreen)。如果你想做一些动画,比如在屏幕上移动捕获矩形,它的性能也会好得多。
    猜你喜欢
    • 2013-05-31
    • 1970-01-01
    • 2012-11-03
    • 2014-11-25
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 2011-02-25
    • 2010-12-26
    相关资源
    最近更新 更多