我有2个文本框,使用 AddItemTextBoxStyle :
<TextBox x:Name="txtItemA" Style="{StaticResource AddItemTextBoxStyle}"></TextBox>
<TextBox x:Name="txtItemB" Style="{StaticResource AddItemTextBoxStyle}"></TextBox>
在 AddItemTextBoxStyle (这是资源字典中的一种风格)中,我有一个标签属性,用于设置文本框中的水印文字:
<Style x:Key="AddItemTextBoxStyle" TargetType="{x:Type TextBox}" BasedOn="{StaticResource CustomTextBoxStyle}">
<Setter Property="Tag" Value="Type here" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<TextBlock Style="{StaticResource WaterMarkTextStyle}" x:Name="WaterMarkLabel" Text="{TemplateBinding Tag}" />
</ControlTemplate>
</Setter.Value>
</Setter.Property>
</Style>
默认情况下,水印文字为&#34;在此输入&#34;。但是,如果我希望两个文本框中的水印文本不同,例如:
我可以知道我该怎么办?由于样式位于资源字典中。
我尝试在线搜索,但仍然无法找到它的线索。
答案 0 :(得分:2)
<TextBox x:Name="txtItemA" Style="{StaticResource AddItemTextBoxStyle}" Tag="Some wathermark" />
<TextBox x:Name="txtItemB" Style="{StaticResource AddItemTextBoxStyle}" Tag="Another watermarks" />
请注意,您的样式只设置了标记的默认值。实际值在控件实例中设置,模板绑定从实例获取值,而不是样式。