Как сделать 100% непрозрачным, даже если контроль отключен в wpf C#
У меня есть текстовое поле в моем wpf, когда я отключаю его, непрозрачность уменьшается. Это происходит, чтобы сообщить пользователю, что текстовое поле не включено. Есть ли способ отключить элемент управления и сохранить внешний вид?
1 ответ
Решение
Установить Template
собственность по вашему вкусу ControlTemplate
:
<TextBox IsEnabled="False" Margin="10">
<TextBox.Template>
<ControlTemplate TargetType="{x:Type TextBox}">
<Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>
</Border>
<ControlTemplate.Triggers>
<!--<Trigger Property="IsEnabled" Value="false">
<Setter Property="Opacity" TargetName="border" Value="0.56"/>
</Trigger>-->
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="BorderBrush" TargetName="border" Value="#FF7EB4EA"/>
</Trigger>
<Trigger Property="IsKeyboardFocused" Value="true">
<Setter Property="BorderBrush" TargetName="border" Value="#FF569DE5"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</TextBox.Template>
</TextBox>
Использование IsHitTestVisible="False"
вместо IsEnabled="False"