需求很简单,就是文本框想要个placeholder的效果,中文的时候显示“姓名”,英文的时候显示“Name”,于是有了以下代码:
<TextBox> <TextBox.Style> <Style TargetType="TextBox"> <Style.Triggers> <Trigger Property="Text" Value=""> <Setter Property="Background"> <Setter.Value> <VisualBrush Opacity="0.3" Stretch="None" TileMode="None"> <VisualBrush.Visual> <TextBlock Text="{DynamicResource Name}" FontSize="20"></TextBlock> </VisualBrush.Visual> </VisualBrush> </Setter.Value> </Setter> </Trigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox>
然后,动态切换成英文资源的时候,发现他还是中文的,晕。后来改成以下代码就OK了,不知和解?
<TextBox> <TextBox.Style> <Style TargetType="TextBox"> <Style.Triggers> <Trigger Property="Text" Value=""> <Setter Property="Background" Value="{DynamicResource VBName}"></Setter> </Trigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox>
来源:https://www.cnblogs.com/catzhou/archive/2020/04/08/12658478.html