Я знаю, что опоздал, но позвольте мне поделиться решением, которое я нашел, изучая этот вопрос: Пользовательский валидатор WPF с всплывающей подсказкой .
В простейшей форме этот ErrorTemplate
показывает толькоTooltip
с ErrorContent
для всего AdornedElement
.
<ControlTemplate x:Key="validationTemplate">
<Grid Background="Transparent"
ToolTip="{Binding Path=/ErrorContent}">
<AdornedElementPlaceholder />
</Grid>
</ControlTemplate>
Но, конечно, вы можете украсить его по своему желанию, например, Tooltip
только для маркера.
<ControlTemplate x:Key="validationTemplate">
<Grid>
<Ellipse Fill="Red" Opacity="0.8" Width="10" Height="10"
HorizontalAlignment="Right" VerticalAlignment="Top"
ToolTip="{Binding Path=/ErrorContent}" />
<AdornedElementPlaceholder />
</Grid>
</ControlTemplate>
Поместите Template
в Resources
, и все, что вам нужно сделать, это установить Validation.ErrorTemplate
.
Validation.ErrorTemplate="{StaticResource validationTemplate}"
Даже этот раздражающий триггер больше не нужен.
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}" />
</Trigger>
</Style.Triggers>