需求很简单,就是文本框想要个placeholder的效果,中文的时候显示“姓名”,英文的时候显示“Name”,因而有了如下代码:code
<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了,不知何解?ci
<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>