нужно поставить, где ресурс откуда.
<TextBox Style="{StaticResource textStyleTextBox}"/>
Затем определяют стиль в качестве ресурса, такого как пользовательский элемент управления ресурсами:
<UserControl.Resources>
<Style TargetType="TextBox" x:Key="textStyleTextBox">
<Setter Property="Background" Value="Blue"/>
</Style>
</UserControl.Resources>
Однако я не верю, что вы хотите установить стиль adornedelement в заполнителе. Это просто место для любого элемента управления с этим шаблоном. Вы должны установить стиль украшенного элемента в самом элементе, как приведенный выше пример. Если вы хотите, чтобы стиль был основан на его проверке, то примерно следующее:
<Window.Resources>
<ControlTemplate x:Key="validationTemplate">
<DockPanel>
<TextBlock Foreground="Yellow" Width="55" FontSize="18">!</TextBlock>
<AdornedElementPlaceholder/>
</DockPanel>
</ControlTemplate>
<Style x:Key="textBoxInError" TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="Background" Value="Red"/>
<Setter Property="Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<StackPanel x:Name="mainPanel">
<TextBlock>Age:</TextBlock>
<TextBox x:Name="txtAge"
Validation.ErrorTemplate="{DynamicResource validationTemplate}"
Style="{StaticResource textBoxInError}">
<Binding Path="Age" UpdateSourceTrigger="PropertyChanged" >
<Binding.ValidationRules>
<ExceptionValidationRule/>
</Binding.ValidationRules>
</Binding>
</TextBox>
</StackPanel>
Спасибо, это имеет смысл. Я надеялся, что в ControlTemplate появится способ указать, что я хочу использовать «textStyleTextBox» при возникновении ошибки, в отличие от установки «Validation.ErrorTemplate» и «Style» в каждом текстовом поле, которое требует проверки. Можете ли вы придумать какой-либо способ сделать это? – Charles
Вы можете использовать стили на уровне приложений (Application.Resources) без ключа, такого как стиль текстового блока, и все текстовые блоки автоматически будут выбирать этот стиль по умолчанию. – Crippeoblade
Как создать собственное текстовое поле, происходящее из обычного текстового поля. Определите его стили и проверку ошибок здесь по умолчанию. Затем используйте свои собственные текстовые поля как обычно в других файлах Xaml. – Crippeoblade