最近项目遇到这个问题,网上搜了半天,也没有好的解决方案,哥怒了!于是自己想了个笨办法:
在登录密码框登录时,只能按英文输入法输入,强制密码框使用英文输入法:
思路是:在密码框的键盘焦点事件和键盘输入事件,列出当前系统所有输入法,将系统输入法强制切换成英文输入法。可能也不是很完美的办法,希望大家多指教,先谢过了。
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