使窗口的特定部分不可见
本文关键字:定部 窗口 | 更新日期: 2023-09-27 18:22:14
我想创建一些类似windows的剪切工具。我有一个用半透明层盖住屏幕的窗户。用户可以通过拖动鼠标来定义屏幕截图的区域(他像窗口剪切工具中那样画一个矩形)。我的问题是:如何使窗口的部分完全透明,以便用户能够清楚地看到屏幕截图的区域?
到目前为止,这是我的代码:
<Window x:Class="SnippingToolPro.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Width="525"
Height="350"
AllowsTransparency="True"
WindowStyle="None"
ResizeMode="NoResize"
WindowStartupLocation="CenterScreen"
WindowState="Maximized"
Opacity="0.5">
<Canvas>
</Canvas>
有什么建议可以让"洞"在中间?
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication1"
AllowsTransparency="True"
WindowStyle="None"
Background="Transparent">
<Grid Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20"/>
<ColumnDefinition/>
<ColumnDefinition Width="20"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="20"/>
<RowDefinition/>
<RowDefinition Height="20"/>
</Grid.RowDefinitions>
<Rectangle Fill="Red" Grid.ColumnSpan="3"/>
<Rectangle Fill="Red" Grid.ColumnSpan="3" Grid.Row="2"/>
<Rectangle Fill="Red" Grid.Row="1"/>
<Rectangle Fill="Red" Grid.Row="1" Grid.Column="2"/>
<Rectangle Grid.Column="1" Grid.Row="1" Cursor="Wait" Fill="Black" Opacity=".01" IsHitTestVisible="True"/>
</Grid>
</Window>
红色矩形只是为了展示边界。内部矩形表示要执行选择的区域