C# WPF中TextBox输入框添加占位符

C# WPF中TextBox输入框添加占位符_第1张图片
然后我们在指定的样式文件中加入如下代码
C# WPF中TextBox输入框添加占位符_第2张图片

 <!--占位符-->
    <Style x:Key="placeHolder" TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type TextBox}">
                    <Grid>
                        <TextBox Padding="38,0,0,0" VerticalContentAlignment="Center" Text="{Binding Path=Text,
                                                RelativeSource={RelativeSource TemplatedParent}, 
                                                Mode=TwoWay,
                                                UpdateSourceTrigger=PropertyChanged}"
                                 x:Name="textSource" 
                                 Background="Transparent" 
                                 Panel.ZIndex="2" />
                        <TextBox Padding="38,0,0,0" VerticalContentAlignment="Center"  Text="{TemplateBinding Tag}" Background="{TemplateBinding Background}" Panel.ZIndex="1">
                            <TextBox.Style>
                                <Style TargetType="{x:Type TextBox}">
                                    <Setter Property="Foreground" Value="Transparent"/>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding Path=Text, Source={x:Reference textSource}}" Value="">
                                            <Setter Property="Foreground" Value="LightGray"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </TextBox.Style>
                        </TextBox>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

然后我们在窗口界面中的style中绑定如下,这里的占位符是用Tag属性指定的。
在这里插入图片描述
然后就可以看到如下效果了。
C# WPF中TextBox输入框添加占位符_第3张图片

你可能感兴趣的:(C#)