Можно использовать арифметические операторы, чтобы сделать относительное время.
Time.now - 2.days
даст Вам 2 дня назад.
(Я использую AdornerDecorator как испытал в предыдущей программе стиль ошибки не перерисовывается при смене вкладок. Я не могу помню, где я это видел, но это было помогите мне)
По-видимому, этот действительно важный совет исходит из блога Карла Шиффлетса , по крайней мере, он обращается к той же теме: Ошибки проверки WPF исчезают внутри TabControl при переключении TabItems .
] Учитывая это, ваша проблема может быть просто связанной, то есть совет / код выше гарантирует, что теперь для каждого элемента вкладки есть выделенный AdornerLayer
, так как декоративный слой родительского элемента удаляется при переключении вкладок. Этот специальный декоративный слой, похоже, по-прежнему требует особой обработки, см., Например, вопрос WPF ErrorTemplate, видимый, когда не сфокусирован? , который в основном решает вашу проблему в перевернутом виде. Следовательно, я Я предлагаю вам объединить и расширить описанное решение для последнего со своим стилем и попробовать следующее (на данный момент непроверенный код):
<Style x:Key="ErrorTemplate" TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">...</Trigger>
<Trigger Property="IsVisible" Value="false">
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
</Trigger>
<Trigger Property="IsVisible" Value="true">
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>...</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
См. также мой комментарий относительно вашего обновления стиля ошибки радиокнопки , который пытается аналогичным образом ответить на ваш вероятный связанный вопрос; Вы действительно пробовали там мое предложение?
См. Обзор декоративных элементов для получения более подробной информации об архитектуре украшений.