WPF: 通过Style 为TextBox添加 WarterMark
来源:互联网 发布:知乎 国民党 编辑:程序博客网 时间:2024/04/30 06:32
1. XAML 代码
<TextBox Width="250" x:Name="UserNameBox" Text="{Binding UserName}" Grid.Row="1" Grid.Column="2" HorizontalAlignment="Right"> <TextBox.Style> <Style TargetType="TextBox" xmlns:sys="clr-namespace:System;assembly=mscorlib"> <Style.Resources> <VisualBrush x:Key="CueBannerBrush" AlignmentX="Left" AlignmentY="Center" Stretch="None"> <VisualBrush.Visual> <Label Content="{StaticResource LoginEmailHint}" Foreground="Gray" /> </VisualBrush.Visual> </VisualBrush> </Style.Resources> <Style.Triggers> <Trigger Property="Text" Value="{x:Static sys:String.Empty}"> <Setter Property="Background" Value="{StaticResource CueBannerBrush}" /> </Trigger> <Trigger Property="Text" Value="{x:Null}"> <Setter Property="Background" Value="{StaticResource CueBannerBrush}" /> </Trigger> <Trigger Property="IsKeyboardFocused" Value="True"> <Setter Property="Background" Value="White" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type TextBox}"> <Border x:Name="border" Width="Auto" Height="Auto" BorderThickness="1" BorderBrush="#FF7F9DB9"> <Grid x:Name="grid" Background="#FFFFFF"> <ScrollViewer VerticalAlignment="Center" HorizontalAlignment="Left"/> </Grid> </Border> </ControlTemplate> </Setter.Value> </Setter> </Trigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox>
2. 在code behind 控制它失去焦点且值不为null 或者 empty的style
<Style x:Key="CenterTextStyle" TargetType="{x:Type TextBox}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type TextBox}"> <Border x:Name="border" Width="Auto" Height="Auto" BorderThickness="1" BorderBrush="#FF7F9DB9"> <Grid x:Name="grid" Background="#FFFFFF"> <ScrollViewer x:Name="PART_ContentHost" VerticalAlignment="Center" HorizontalAlignment="Left"/> </Grid> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style>
Code behind:
this.UserNameBox.LostFocus += UserNameBox_LostFocus; private void UserNameBox_LostFocus(object sender, RoutedEventArgs e) { if (!string.IsNullOrWhiteSpace(this.UserNameBox.Text)) { this.UserNameBox.Style = (Style)Application.Current.Resources["CenterTextStyle"]; } }
0 0
- WPF: 通过Style 为TextBox添加 WarterMark
- [WPF]Watermask TextBox Style
- 为TextBox添加onclick事件
- 为textbox控件添加水印
- WPF 设置TextBox为空时,背景为文字提示。
- WPF中设置TextBox为空,背景为文字提示
- WPF 设置TextBox为空时,背景为文字提示。
- Wpf中通过绑定来更新textbox的值
- wpf Style
- WPF 为按钮添加Tooltip
- 为Button 添加图片---WPF
- 为Button 添加图片---WPF
- WPF中设置TEXTBOX为多行文本输入框
- WPF中设置TEXTBOX为多行文本输入框
- WPF中设置TEXTBOX为多行文本输入框
- WPF附加属性控制TextBox的输入为金额格式
- 【WPF】设置TextBox内容为空时的提示文字
- android为RadioButton动态添加style样式
- Cucumber-JVM Within SecureCI
- UITextView控件的详细讲解
- Checkboxes(复选框)
- 安卓学习之路_20140418
- 一个Java程序员应该掌握的10项技能
- WPF: 通过Style 为TextBox添加 WarterMark
- 智力问题引发的哲学思考
- 贴边(效果还不完善)
- UITextView在光标处添加文字
- 【蓝桥杯练习系统】 基础练习 回文数
- log4j2使用笔记
- ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法
- IOS中UITextView控件的一些使用方法
- JavaScript Array(数组)对象