• 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         }
  • 相关阅读:
    Linux使用Public Key方式远程登录
    Linux编译安装Mariadb数据库
    Centos7环境搭建lnmp环境
    浅谈Java中的System.gc()的工作原理
    Eclipse快捷键大全(转载)
    java中的参数传递——值传递、引用传递
    Visual Studio 2017 安装后无法创建c++或MFC项目
    ubuntu sendmail配置发送邮件
    ubuntu11.0静态IP地址配置
    cin与cout详解
  • 原文地址:https://www.cnblogs.com/yellow3gold/p/14635868.html
Copyright © 2020-2023  润新知