【问题标题】:VisualBrush WPF displayingVisualBrush WPF 显示
【发布时间】:2014-08-05 22:29:35
【问题描述】:

我有一个画布,它由 WPF/XAML 中的不同用户控件组成。在其中一个控件中,我有一个必须透明的区域,以便它后面的元素可见。但是,由于该控件的复杂结构,我不能只将背景设置为透明或任何内容,因为该用户控件中有另一个元素可以说在它后面移动并且不能透明。所以我想要一个看起来透明的区域,即使它背后还有其他东西。

我唯一能想到的就是使用 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 代码中定义的必须透明的边框(它具有一定的宽度和高度)。我还没有设置视图框属性,因为这已经不起作用了。我期待画布的至少一部分已经显示在我的“borderTest”中...... 有人知道我的问题,或者可以指出一些他们做类似事情的代码?我已经在互联网上找到了很多,但我无法让这个东西工作。

【问题讨论】:

  • 这仅在 UserControl 本身不是 Canvas 的子项时才有效。
  • 好吧,这可能是问题所在,因为它是 Canvas 的子项。这背后的原因是什么(它不能是画布的孩子)?还有其他方法吗?

标签: c# wpf visualbrush


【解决方案1】:

好的,我以不同的方式解决了这个问题:我在我的用户控件中的画布上添加了一个剪辑区域,该区域需要透明,因此那里没有显示任何内容,因此背景中的画布变得可见。不管怎么说,还是要谢谢你!

【讨论】:

    猜你喜欢
    • 2010-12-28
    • 2019-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多