Commit f668ae25 authored by 潘栩锋's avatar 潘栩锋 🚴

修复 密码输入界面按虚拟键盘会出错

parent 271a7bd3
......@@ -181,6 +181,9 @@ namespace FLY.ControlLibrary.UI.OSK
w.Closed += (s, e) => {
IsKeyboardOnShow = false;
if (window == null)
return;
if (window.WindowState == WindowState.Normal) {
//当window 为2级时, 关闭虚拟键盘,window有概率不刷新
//移动一下界面。 强制令它刷新
......@@ -190,6 +193,48 @@ namespace FLY.ControlLibrary.UI.OSK
};
kb.Open(tb);
}
public static void PopPad(TextBox tb,Window parentWindow)
{
IVirtualKeyboard kb;
string param = "";
if ((tb.Tag is string))
param = (string)tb.Tag;
param = param.ToLower();
if (param.Contains("full"))
{
var fkb = new WdFullKeyboard();
if (param.Contains("password") || param.Contains("pw"))
fkb.IsPwMode = true;
kb = fkb;
}
else
kb = new WdNumKeyboard();
Window w = (Window)kb;
Window window = parentWindow;
w.Owner = parentWindow;
IsKeyboardOnShow = true;
w.Closed += (s, e) => {
IsKeyboardOnShow = false;
if (window == null)
return;
if (window.WindowState == WindowState.Normal)
{
//当window 为2级时, 关闭虚拟键盘,window有概率不刷新
//移动一下界面。 强制令它刷新
//window.UpdateLayout() 无效
window.Left += 1;
}
};
kb.Open(tb);
}
}
......
......@@ -108,7 +108,7 @@ namespace FLY.Thick.Base.UI
var textbox = s as TextBox;
passwordbox.Password = textbox.Text;
};
FLY.ControlLibrary.UI.OSK.KeyboardBehavior.PopPad(tbPw);
FLY.ControlLibrary.UI.OSK.KeyboardBehavior.PopPad(tbPw, this);
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment