VisualBrush WPF displaying

本文关键字:displaying WPF VisualBrush | 更新日期: 2023-09-27 18:16:24

我在WPF/XAML中有一个由不同UserControls组成的画布。在其中一个控件中,我有一个区域必须是透明的,所以它后面的元素是可见的。然而,由于这个控件的复杂结构,我不能直接将背景设置为透明之类的,因为在usercontrol中还有另一个元素在后面移动,不能设置为透明。所以我想要一个区域看起来是透明的,即使它后面还有别的东西。

我唯一能想到的就是使用VisualBrush,将画布上的那个区域精确地显示在透明区域的顶部。我想在WPF中做到这一点,而不是在XAML中,因为我需要准确地调整视图框,以便内容完全是该部分后面的内容。然而,这似乎根本不起作用。下面是WPF代码:

Rectangle rect = new Rectangle();
rect.HorizontalAlignment = HorizontalAlignment.Stretch;
rect.VerticalAlignment = VerticalAlignment.Stretch;
VisualBrush VisualBrush1 = new VisualBrush();
VisualBrush1.Visual = MainCanvas;
VisualBrush1.Stretch = Stretch.None;
rect.Fill = VisualBrush1;
RectTest.Child = rect;

BorderTest是我在xaml代码中定义的边框,它必须是透明的(它具有一定的宽度和高度)。我还没有设置viewbox属性,因为这已经不起作用了。我希望画布的至少一部分已经显示在我的"borderTest"中…有人知道我的问题,或者可以给我指出一些代码,他们在哪里做类似的事情?我已经在网上找到了很多,但我不能让这个东西工作

VisualBrush WPF displaying

好了,我用另一种方式解决了这个问题:我在usercontrol的画布上添加了一个剪切区域,该区域需要透明,因此那里没有显示任何内容,因此背景中的画布变得可见。谢谢!