如何修改TextBoxHelper浮动水印的聚焦颜色?
问题描述
我的TextBox基础设置如下:
<TextBox x:Name="NomeRapporto" Text="{Binding NomeRapporto}" controls:TextBoxHelper.Watermark="Nome Rapporto" controls:TextBoxHelper.UseFloatingWatermark="True" />
空状态下渲染效果:
手动输入文本后(控件聚焦)的效果:
需要将控件聚焦时的水印颜色修改为红色,请问该如何操作?
解决方案
方式一:全局覆盖主题资源
MaterialDesign的浮动水印聚焦时的颜色默认绑定主题资源FloatingTextFieldTextBoxForegroundFocused,在App.xaml或当前窗口的Resources中重新定义该资源即可全局生效:
<Window.Resources> <SolidColorBrush x:Key="FloatingTextFieldTextBoxForegroundFocused" Color="Red" /> </Window.Resources>
方式二:单个控件自定义样式
若仅需修改目标TextBox的水印颜色,可基于MaterialDesign默认样式自定义触发器:
<TextBox x:Name="NomeRapporto" Text="{Binding NomeRapporto}" controls:TextBoxHelper.Watermark="Nome Rapporto" controls:TextBoxHelper.UseFloatingWatermark="True"> <TextBox.Style> <Style TargetType="TextBox" BasedOn="{StaticResource MaterialDesignFloatingHintTextBox}"> <Style.Triggers> <Trigger Property="IsKeyboardFocused" Value="True"> <Setter Property="controls:TextBoxHelper.WatermarkForeground" Value="Red" /> </Trigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox>
内容的提问来源于stack exchange,提问作者markzzz
相关产品推荐
相关产品推荐

