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

时间:2014-07-24 08:34:30

标签: c# wpf xaml

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

的用法
  

AdornedElementPlaceholder

我仍然感到困惑的是,它为xaml验证所包含的确切功能是什么?

2 个答案:

答案 0 :(得分:9)

如果您使用验证,则需要向用户显示验证失败的位置(以及AdornedElementPlaceholder发挥作用的位置)。它是一个占位符,与您正在验证的UIElement的大小完全相同。

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

<ControlTemplate>
    <Border BorderBrush="Red" BorderThickness="1">
        <AdornedElementPlaceholder />
    </Border>
</ControlTemplate> 

您应该阅读this article

答案 1 :(得分:0)

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

  

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

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