WPF 密码框输入密码时强制使用英文输入法

本文介绍了一种解决WPF中密码框只能使用英文输入法的方法。通过监听键盘焦点和按键事件,以及处理系统消息,当密码框获取焦点时自动切换到英文输入法,确保用户在输入密码时只能使用英文。
摘要由CSDN通过智能技术生成

最近项目遇到这个问题,网上搜了半天,也没有好的解决方案,哥怒了!于是自己想了个笨办法:

在登录密码框登录时,只能按英文输入法输入,强制密码框使用英文输入法:

思路是:在密码框的键盘焦点事件和键盘输入事件,列出当前系统所有输入法,将系统输入法强制切换成英文输入法。可能也不是很完美的办法,希望大家多指教,先谢过了。

 

UI:

<Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <PasswordBox Height="23" HorizontalAlignment="Left" Margin="216,80,0,0" Name="passwordBox1" VerticalAlignment="Top" Width="120" InputMethod.IsInputMethodEnabled="False"/>                   
        <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="250,131,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
    </Grid>
</Window>

 

后台:

 public partial class MainWindow : Window
    {
        private const string DefaultInputLanguage = "en";


        public MainWindow()
        {
            InitializeComponent();

            passwordBox1.PreviewGotKeyboardFocus += new KeyboardFocusChangedEventHandler(password

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值