gpt4 book ai didi

c# - 可以清除装饰层吗?

转载 作者:太空狗 更新时间:2023-10-29 19:48:05 25 4
gpt4 key购买 nike

我可能误解了 WPF 中装饰层的概念,但我已经设法将 TextBlock 添加到 StackPanel 的装饰层。

如何清除装饰层?例如,StackPanel 的装饰层中不再有 TextBlock 了吗?

最佳答案

老问题,但我遇到了同样的问题:

AdornerLayers由多个 UIElement 共享。要访问任何 ui 元素(任何 Visual,更具体地说)的 AdornerLayer,您可以调用 static AdornerLayer.GetAdornerLayer(visual)。此方法沿着 VisualTree 向上移动,找到第一个 AdornerDecorator(用于保存 AdornerLayer 的容器)并返回与 UIElement 关联的 AdornerLayer。然后,您可以在该 AdornerLayer 中访问与 UIElement 相关的 Adorners。

下面是从 StackPanel 使用的 AdornerLayer 中删除与 StackPanel 相关的所有 Adorners 的代码:

var adornerLayer = AdornerLayer.GetAdornerLayer(yourStackPanel);
var adornersOfStackPanel = adornerLayer.GetAdorners(yourStackPanel);

foreach (var adorner in adornersOfStackPanel)
adornerLayer.Remove(adorner);

关于c# - 可以清除装饰层吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8786973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com