我有一个画布,其中包含不同的UserControls在WPF/XAML。在其中一个控件中,我有一个区域必须是透明的,这样它后面的元素才是可见的。然而,由于这个控件的复杂结构,我不能简单地将背景设置为透明的,因为在该用户控件中有另一个元素,比如说在它后面移动,不能是透明的。所以我希望有一个看起来透明的区域,尽管它背后还有其他东西。
我能想到的唯一办法就是使用一个VisualBrush,将画布上的那个区域精确地显示在该区域的顶部,如果它是透明的,就必须看起来像这样。我想在WPF而不是XAML中做到这一点,因为我需要精确地调整viewbox,以便内容恰好是该部分后面的内容。然而,这似乎根本不起作用。下面是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”中显示出来了……有人知道我的问题,或者可以给我指出一些他们做类似事情的代码?我已经在互联网上找到了很多东西,但我不能让这个东西工作。
发布于 2014-08-05 22:29:36
好吧,我用一种不同的方式解决了这个问题:我在我的用户控件中的画布上添加了一个剪贴区,在需要透明的区域,这样什么都不会显示在那里,这样背景中的画布就会变得可见。不管怎样,谢谢你!
https://stackoverflow.com/questions/25125185
复制相似问题