У меня есть Style
для TextBox
, как это:
<Style x:Key="TextBox_Standard" TargetType="{x:Type TextBoxBase}" >
<Setter Property="Control.FontFamily" Value="/#Calibri" />
<Setter Property="Control.FontSize" Value="12" />
<Setter Property="Control.Margin" Value="2" />
<Setter Property="Control.Height" Value="21" />
<Setter Property="Control.VerticalAlignment" Value="Center" />
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="UndoLimit" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBoxBase}">
<Border
Name="Border"
CornerRadius="1"
Padding="1"
Background="{StaticResource WindowBackgroundBrush}"
BorderBrush="{StaticResource SolidBorderBrush}"
BorderThickness="1" >
<ScrollViewer Margin="0" x:Name="PART_ContentHost" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackgroundBrush}"/>
<Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
<Setter Property="Cursor" Value="Arrow"/>
</Trigger>
<Trigger Property="IsReadOnly" Value="True">
<Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackgroundBrush}"/>
<Setter Property="Focusable" Value="False"/>
<Setter Property="Cursor" Value="Arrow"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Это сделано для того, чтобы цвет переднего плана был черным, а цвет фона - серым, когда его нельзя редактировать.
но, по-видимому, теперь существует потребность в программном изменении фона, когда он не редактируется, поэтому я попробовал это так:
txtBox.Background = Brushes.Yellow;
но что происходит, так это то, что у него все еще есть белый фон, когда редактируемый, и серый фон, когда не редактируемый.
Где я ошибся?