AdornerDecorator - 它们放在哪里有啥关系?
Posted
技术标签:
【中文标题】AdornerDecorator - 它们放在哪里有啥关系?【英文标题】:AdornerDecorator - what does it matter where they are placed?AdornerDecorator - 它们放在哪里有什么关系? 【发布时间】:2012-03-13 21:28:33 【问题描述】:像这样的一些xaml:
<Grid Name="grid">
<AdornerDecorator>
<TextBox Height="23" HorizontalAlignment="Left" Name="textBox1" Width="120" />
</AdornerDecorator>
</Grid>
WPF Snoop 实用程序指示 textBox1 是 AdornerDecorator 的子级(如您所料),但 AdornerDecorator 创建的 AdornerLayer 也是一个子级。由于添加到 AdornerLayer 的自定义装饰器可以显示在文本框的“外部”,因此 AdornerLayer 的绘图表面也必须延伸到外部(大概是整个窗口)。
那么,放置 AdornerDecorator 有什么实际意义(假设我们将 UI 元素绑定到自定义装饰器,我们将其放置在 AdornerLayer 中)?我知道 AdornerLayer.GetAdorner(textBox1) 将从 textbox1 获取可视化树中的第一个装饰层,但它在哪里有什么关系(因为自定义 ardorner 被添加到图层并且自定义 ardorner 知道它绑定了哪个元素到)?
【问题讨论】:
您可以查看我的问题以了解放置 AdornerDecorator 的意义。 ***.com/questions/11477518/… 【参考方案1】:简短的回答是,当您开始处理与其他控件重叠的控件(在 z-index 平面中)并且您关心特定的装饰层是否显示在重叠控件的顶部时,这很重要。例如,当您使用ErrorTemplate 时,其内容会在装饰层中呈现,如果您在应用程序中没有提供<AdornerDecorator>
(意味着您只使用大多数 Window 模板提供的那个),那么您最终可能会发生this。
通过将<AdornerDecorator>
放置在我们想要的位置,我们可以控制这种重叠的行为方式。
【讨论】:
以上是关于AdornerDecorator - 它们放在哪里有啥关系?的主要内容,如果未能解决你的问题,请参考以下文章
Xcode Bots 将它们的结果放在哪里,以便我可以解析它们?
我应该把我的 php 文件放在哪里让 Xampp 解析它们?