当我们在验证controlTemplate中使用它时,AdornedElementPlaceholder到底做了什么?

Neh*_*eha 9 c# wpf xaml

经过几篇文章和实例展示了其用法

AdornedElementPlaceholder

我仍然感到困惑的是,它与xaml验证结合的确切功能是什么?

Mar*_*l B 10

如果您使用Validations,则需要向用户显示无法验证的位置(以及哪些内容)以及AdornedElementPlaceholder发挥作用的位置.它是一个占位符,与您正在验证的UIElement的大小完全相同.

假设您正在验证用户输入,TextBox并希望TextBox在验证失败时显示一个红色框.为.定义ValidationRule和验证模板TextBox.如果ValidationRule失败,则会Validation.ErrorTemplate显示在您的TextBox.在模板内部,AdornedElementPlaceholder告诉框架将模板放在UI上的位置.在我们的例子中,模板可能如下所示:

<ControlTemplate>
    <Border BorderBrush="Red" BorderThickness="1">
        <AdornedElementPlaceholder />
    </Border>
</ControlTemplate> 
Run Code Online (Sandbox Code Playgroud)

你应该阅读这篇文章.


Phe*_*nyx 2

我相信 AdornedElementPlaceholder 用于显示“验证指示器元素”相对于正在验证的控件的位置。即,如果您有一个文本框,并且当验证失败时,该框的右侧会出现一个红色 x,我相信(尽管不是 100%)AdornedElementPlaceholder 负责该定位。

表示 ControlTemplate 中使用的元素,用于指定修饰控件相对于 ControlTemplate 中其他元素的放置位置。

来源: http ://msdn.microsoft.com/en-us/library/system.windows.controls.adornedelementplaceholder(v=vs.110).aspx