当文本框处于只读状态并且在选项卡上我想禁用文本框的焦点边框时,我想在文本框的样式中执行此操作。有人可以帮我实现这一点吗?
更新了内容:
截屏:
在您的文本框样式中放置如下条件
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsReadOnly" Value="True"></Condition>
<Condition Property="IsFocused" Value="True"></Condition> </MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter Property="BorderBrush" Value="{#7B2F81}"></Setter>
</MultiTrigger.Setters>
试试这个:
<Window.Resources>
<Style x:Key="FocusVisualStyle" TargetType="{x:Type Control}">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Control}">
<Border SnapsToDevicePixels="True"
CornerRadius="0"
BorderThickness="2"
BorderBrush="#7B2F81" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Background" Value="Pink" />
<Style.Triggers>
<Trigger Property="IsReadOnly" Value="True">
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisualStyle}" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<TextBox Text="TestText"
IsReadOnly="True"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Grid>
如果TextBox.IsReadOnly == True
然后FocusVisualStyle
在 StyleTrigger 中设置。您可以在 中自定义 Focus 的视觉行为FocusVisualStyle
。