当谈到WPF时,我仍然略显绿色。我目前正在研究一个WPF表单,其上有几个文本框。每个TextBox都与坐在同一个x,y坐标中的TextBlock配对,作为GhostText。一旦你在文本框内单击,GhostText消失。如何在不同的组件类型中正确应用WPF样式中的DataTrigger绑定?
下面的最初结合是建立在窗体的XAML如何(这相同的代码被复制的所有文本框从而支持使用样式推理)的一个例子:
<TextBox Grid.Column="0" Width="40" Height="25" VerticalAlignment="Top" HorizontalAlignment="Left" x:Name= "RecordMinutesTextBox" Padding="12,5,5,0" Text ="{Binding RecordMinute}" Margin="0,25,5,1" PreviewTextInput="CheckNumberValidation" Background="{Binding ElementName=FireWashingtonResponseTimeReport,Path=DataContext.RequiredFieldColor}"/>
<TextBlock Grid.Column="0" Width="40" IsHitTestVisible="False" Text="MIN" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="DarkGray" Margin="8,25,0,1" >
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Text, ElementName=RecordMinutesTextBox}" Value="">
<Setter Property="Visibility" Value="Visible"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
*注名其中一个文本框“RecordMinutesTextBox”,用作DataTrigger绑定的ElementName。
这里是我的WPF样式模板中的代码:
<Style x:Key="MinuteAndSecondsGhostText" TargetType="TextBlock">
<Setter Property="Width" Value="40"/>
<Setter Property="IsHitTestVisible" Value="False"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="Foreground" Value="DarkGray"/>
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Text, ElementName=??WhatDoIPutHere??}" Value="">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>enter code here
所以我的问题真的可以归结到这一点。我应该在DataTrigger Binding中使用什么作为此样式的ElementName?考虑到我的表单上有多个不同名称的文本框。提前致谢。
@ThomasBomans我很欣赏编辑建议。谢谢。 – ARH