首页 > 其他分享 >WPF PasswordBox控件的使用

WPF PasswordBox控件的使用

时间:2023-08-24 23:23:18浏览次数:38  
标签:控件 PasswordChanged string passwordBox static PasswordBox WPF Password

在做登陆框的时候使用到PasswordBox,PasswordBox并不能像TextBox一样通过Binding就可以实现MVVM,需要用到依赖属性。

 

LoginView文件的代码:

<StackPanel Grid.Row="0" Orientation="Horizontal" Margin="5">
<TextBlock Text="Username:" Width="65" VerticalAlignment="Center"/>
<TextBox Width="200"
Height="30"
VerticalContentAlignment="Center"
Text="{Binding Username}"/>
</StackPanel>

<StackPanel Grid.Row="1" Orientation="Horizontal" Margin="5">
<TextBlock Text="Password:" Width="65" VerticalAlignment="Center"/>
<PasswordBox x:Name="Password"
Width="200"
Height="30"
VerticalContentAlignment="Center"
local:PasswordBoxHelper.Password="{Binding Password, Mode=TwoWay}"/>
</StackPanel>

在项目里新建PasswordBoxHelper.cs文件

public static class PasswordBoxHelper
    {
        public static readonly DependencyProperty PasswordProperty =
            DependencyProperty.RegisterAttached("Password", typeof(string), typeof(PasswordBoxHelper), new FrameworkPropertyMetadata(string.Empty, OnPasswordPropertyChanged));

        public static string GetPassword(DependencyObject obj)
        {
            return (string)obj.GetValue(PasswordProperty);
        }

        public static void SetPassword(DependencyObject obj, string value)
        {
            obj.SetValue(PasswordProperty, value);
        }

        private static void OnPasswordPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
        {
            if (sender is PasswordBox passwordBox)
            {
                passwordBox.PasswordChanged -= PasswordBox_PasswordChanged;
                passwordBox.PasswordChanged += PasswordBox_PasswordChanged;
            }
        }

        private static void PasswordBox_PasswordChanged(object sender, RoutedEventArgs e)
        {
            if (sender is PasswordBox passwordBox)
            {
                SetPassword(passwordBox, passwordBox.Password);
            }
        }
    }

 

这样在就能将PasswordBox里的值传递给ViewModel对应的属性了。

 

over!

 

标签:控件,PasswordChanged,string,passwordBox,static,PasswordBox,WPF,Password
From: https://www.cnblogs.com/Xujimeng/p/17655448.html

相关文章

  • 遍历Tree控件中的节点
    classSapGuiTree:classTreeType(enum.Enum):SIMPLE=0LIST=1COLUMN=2@classmethoddefshow(cls,tree,node,indention):print(indention,node,[tree.GetItemText(node,col......
  • windows 桌面GUI自动化- 14.pywinauto 找到多个相同控件使用found_index
    前言pywinauto在查找到多个相同控件时操作会报错,可以使用found_index选择其中的一个查找到多个查找control_type="MenuBar"的所有控件frompywinautoimportApplicationapp=Application('uia').start("notepad.exe")win=app.window(title_re="无标题-记事本")#......
  • LinkButton控件,点击按钮带参数到后台
    LinkButton实现带参数到后台方法详解一:LinkButton控件常用的属性Text:用于设置控件显示的文本内容。ToolTip:鼠标悬停在控件上时显示的提示信息。CommandArgument:用于向服务器端的事件处理程序传递额外的参数。CommandName:用于标识LinkButton的命令名称,用于区分不同的......
  • windows 桌面GUI自动化- 12.pywinauto 组合框控件ComboBox操作
    前言pywinauto组合框控件ComboBox操作场景记事本-另存为-编码选择,下图这种就是组合框控件ComboBoxselect选择官网给的教程是通过select选择选项示例frompywinautoimportApplicationapp=Application('uia').start("notepad.exe")win=app.window(title_re="......
  • windows 桌面GUI自动化- 11.pywinauto 窗口和控件截图capture_as_image()
    前言pywinauto对窗口和控件截图capture_as_image()窗口截图对连接的窗口截图frompywinautoimportApplicationapp=Application('uia').start("notepad.exe")win=app.window(title_re="无标题-记事本")#对窗口截图win.capture_as_image().save('not.pn......
  • WPF 触发器Trigger
    Trigger:当某些条件满足时会触发一个行为。一、触发器的类型数据变化触发型:Trigger/DataTrigger多条件触发型:MultiTrigger/MultiDataTrigger事件触发型:EventTrigger二、TriggerTrigger:Property用来指明关注目标控件的哪个属性,Value则是触发条件。Setter:一旦触发条件被......
  • element 树形控件,父节点不显示复选框,子节点显示复选框,需增加特定样式
      代码复用参考: /deep/.stafftree.el-tree.el-tree-node.is-leaf+.el-checkbox.el-checkbox__inner{display:inline-block;}/deep/.stafftree.el-tree.el-tree-node.el-checkbox.el-checkbox__inner{display:none;}::v-deep.el-tr......
  • windows 桌面GUI自动化- 8.pywinauto 获取控件属性和文本内容
    前言控件操作完成后,一般需要获取控件的属性对结果断言,判断是否符合预期。查看控件类型wrapper_object()方法可以查看控件类型frompywinautoimportApplicationapp=Application('uia').start("notepad.exe")win=app.window(title_re="无标题-记事本")m=win.ch......
  • 常见控件说明
    阅读目录1.文本框 常见的控件: 1.文本输入框(TextBox) 2.按钮控件(Button) 3.下拉选框(DropList) 4.日期/时间控件(Date/TimePicker) 5.(图片、文件)上传控件(Upload)  6.树形控件(TreeView) 7.列表框(ListBox) 8.多格式文本框(RichTextBox)  9.Tab控件10.其他控......
  • WPF输入框验证
    WPF使用ValidationRule进行数据绑定验证1.xaml代码如下:<Windowx:Class="WpfApp1.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"......