実行時に生成される多数の TextBox があります。特定のアクションが実行されたときにボーダーブラシの色を緑に設定し、ボーダーの太さを変更したいと思います。私の場合、これは分離コードから行う必要があります。
私の最初の課題は、マウスでホバーしたときに TextBox の境界線の色が変わらないようにすることでした。これは、次のスタイルを追加することで実現されました。
<UserControl.Resources>
<Style TargetType="TextBox">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="AllowDrop" Value="true"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBoxBase}">
<Border
Name="Border"
Padding="1"
Background="#FFFFFF"
BorderBrush="#888888"
BorderThickness="1" >
<ScrollViewer Margin="0" x:Name="PART_ContentHost"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Border" Property="Background" Value="#EEEEEE"/>
<Setter TargetName="Border" Property="BorderBrush" Value="#EEEEEE"/>
<Setter Property="Foreground" Value="#888888"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="TreeViewItem">
<Setter Property="Template" Value="{StaticResource TreeViewWithLines}"/>
<Setter Property="Padding" Value="0,5,0,5"/>
<Setter Property="IsExpanded" Value="true"/>
</Style>
</UserControl.Resources>
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto">
<TreeView Name="tvFilters" Margin="0,10,0,10" Background="White" BorderBrush="White"/>
</ScrollViewer>
</UserControl>
上記のコードは、私の UserControl 用です。
次に、新たな問題が発生し始めました。コード ビハインド メソッド内で BorderBrush および BorderThickness プロパティを手動で変更しようとすると、まったく何も起こりません。これはコードです:
txt.BorderThickness = new Thickness(3);
txt.BorderBrush = Brushes.Green;
何か案は?