我有一个带有这些值的窗口:
WindowState="Maximized"
AllowsTransparency="True"
Opacity="0.5"
WindowStyle="None"
Run Code Online (Sandbox Code Playgroud)
此窗口位于其他窗口的顶部(作为弹出窗口),其中包含特定位置上的内容.
我有一个新的要求.该窗口必须从下面的窗口显示一个矩形区域.换句话说,我必须在这个窗口中设置一个"洞",它将是完全透明的(没有不透明度值).直到这一刻我才想出办法让这个透明的洞.
希望得到一个想法......
Sat*_*mba 10
我找到了一种解决方案:
这是一个弹出窗口,位于另一个窗口的顶部,并在所需位置包含一个到另一个窗口的孔:
Window的标题:
WindowState="Maximized"
AllowsTransparency="True"
WindowStyle="None"
Run Code Online (Sandbox Code Playgroud)
窗口内容:
<Window.Background >
<SolidColorBrush x:Name="BackgroundBrush" Color="WhiteSmoke" Opacity="0" ></SolidColorBrush>
</Window.Background>
<Canvas x:Name="ContectHolder" >
<Path Stroke="Black" Fill="WhiteSmoke" Opacity="0.8">
<Path.Data>
<CombinedGeometry GeometryCombineMode="Exclude">
<CombinedGeometry.Geometry1 >
<RectangleGeometry Rect="0,0,2000,2000" />
</CombinedGeometry.Geometry1>
<CombinedGeometry.Geometry2>
<RectangleGeometry Rect="75,75,400,900" />
</CombinedGeometry.Geometry2>
</CombinedGeometry>
</Path.Data>
</Path>
</Canvas>
Run Code Online (Sandbox Code Playgroud)
尽量避免AllowsTransparency=true,它有很多错误并且速度很慢。
您可以 PInvoke SetWindowRgn 创建任意形状的窗口:
| 归档时间: |
|
| 查看次数: |
8225 次 |
| 最近记录: |