wpf Prism PasswordBox数据绑定+提示文本
要点:
1.采用TextBlock+PasswordBox叠加的方式,TextBlock在上层
2.采用DataTrigger数据触发器,绑定PasswordContent(这是附加的依赖属性,原本的PasswordBox是没有的),当PasswordContent的值为空字符串的时候,将TextBlock显示,否则隐藏TextBlock
3.为PasswordBox附加依赖属性——PasswordContent,主要是通过类PassworkBoxHelper实现(详细代码见上篇随笔)
4.该依赖属性的值与PasswordBox的Password属性一样,并且跟随变化(在类PassworkBoxHelper中实现)
5.PasswordContent绑定后台的一个字段,并给该字段赋初值——空字符串
前台代码:
1 <Style x:Key="LoginPasswordBox" TargetType="TextBox"> 2 <Setter Property="Width" Value="180"/> 3 <Setter Property="Height" Value="40"/> 4 <Setter Property="Template"> 5 <Setter.Value> 6 <ControlTemplate TargetType="TextBox"> 7 <Border BorderBrush="#778899" BorderThickness="1" Background="White" CornerRadius="5" Margin="5"> 8 <Grid> 9 <Grid.ColumnDefinitions> 10 <ColumnDefinition Width="1*"/> 11 <ColumnDefinition Width="5*"/> 12 </Grid.ColumnDefinitions> 13 <Border Grid.Column="0" BorderBrush="#778899" BorderThickness="0,0,1,0" Margin="0,5,5,5"/> 14 <Image Source="../Resources/lock1.png" Width="10" Height="10" Margin="0,0,5,0"/> 15 <PasswordBox x:Name="passwordbox" Grid.Column="1" Margin="2,0" FontSize="10" BorderBrush="{x:Null}" 16 VerticalAlignment="Center" BorderThickness="0" 17 base:PasswordBoxHelper.PasswordContent="{Binding PasswordContent}" 18 base:PasswordBoxHelper.AttachProperty="True"/> 19 <TextBlock x:Name="TipTextBlock" Text=" 请输入密码" Grid.Column="1" Margin="2,0" FontSize="10" Foreground="#DCDCDC" 20 Visibility="Collapsed" VerticalAlignment="Center" IsHitTestVisible="False"/> 21 </Grid> 22 </Border> 23 <ControlTemplate.Triggers> 24 <DataTrigger Binding="{Binding ElementName=passwordbox, Path=(base:PasswordBoxHelper.PasswordContent)}" Value=""> 25 <Setter TargetName="TipTextBlock" Property="Visibility" Value="Visible"/> 26 </DataTrigger> 27 </ControlTemplate.Triggers> 28 </ControlTemplate> 29 </Setter.Value> 30 </Setter> 31 </Style>
分类:
wpf-Prism-上位机软件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类