WPF设置TextBox内容为空时的提示文字的两种方式

1.网上普遍的实现形式为下面这一种,供参考。

复制代码
 1 <TextBox x:Name="TxtUserName1" Grid.Column="1" FontSize="18" TextChanged="TxtUserName1_TextChanged"
 2                              Foreground="#FFB4EEFF" Margin="1" BorderThickness="4" VerticalContentAlignment="Center">
 3                 <TextBox.Resources>
 4                     <VisualBrush x:Key="HintText" TileMode="None" Opacity="0.5" Stretch="None" AlignmentX="Left">
 5                         <VisualBrush.Visual>
 6                             <TextBlock Text="请输入用户名" Foreground="Gray"/>
 7                         </VisualBrush.Visual>
 8                     </VisualBrush>
 9                 </TextBox.Resources>
10                 <TextBox.Style>
11                     <Style TargetType="TextBox">
12                         <Style.Triggers>
13                             <Trigger Property="Text" Value="{x:Null}">
14                                 <Setter Property="Background" Value="{StaticResource HintText}"/>
15                             </Trigger>
16                             <Trigger Property="Text" Value="">
17                                 <Setter Property="Background" Value="{StaticResource HintText}"/>
18                             </Trigger>
19                         </Style.Triggers>
20                     </Style>
21                 </TextBox.Style>
22             </TextBox>
复制代码

在应用过程中,如果我给TextBox加一个 Background,提示文字就会不正常显示。

2.于是我用了第二个办法实现,在TextBox的位置新增一个TextBlock,TextBlock的内容为提示信息。

在TextBox的TextChanged事件中实现隐藏

Xaml代码:

1 <Grid Grid.Row="3">
2             <TextBox x:Name="TxtUserName2" Grid.Column="1" FontSize="18" TextChanged="TxtUserName2_TextChanged"  Background="AliceBlue"
3                              Foreground="#FFB4EEFF" Margin="1" BorderThickness="4" VerticalContentAlignment="Center">
4             </TextBox>
5             <TextBlock Name="txtTip" Text="请输入用户名" Padding="10"></TextBlock>
6         </Grid>

cs后台代码:

1  private void TxtUserName2_TextChanged(object sender, TextChangedEventArgs e)
2         {
3             txtTip.Visibility = string.IsNullOrEmpty(TxtUserName2.Text) ? Visibility.Visible : Visibility.Hidden;
4         }

 

posted @   新*  阅读(4685)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示