我在WPF应用程序中有一个PasswordBox,用于没有键盘的触摸屏。这是一个问题,因为单击PasswordBox时未显示虚拟键盘图标。
我觉得它应该与InputMethod及其IsInputMethodEnabled属性有关,但以下仍然不起作用:
<PasswordBox InputMethod.IsInputMethodEnabled="True"/>
是否可以强制弹出虚拟键盘?
作为一种解决方法,我创建了一个自定义虚拟键盘,可以直接修改PasswordBox.Password ..
答案 0 :(得分:1)
我相信PasswordBox控件不支持这个,因为它不是直接从TextBox继承的。相反,它是从控制继承而来的。
我没有直接的回答,但是这个问题有一些非常糟糕的解决方法
a)可行的最佳方法是创建自己的控件,该控件继承自文本框。
b)您可以在密码框上放置一个文本框。当用户点击它时,你处理文本框GotFocus事件,隐藏文本框并将焦点给你密码框。
c)您可以通过编程方式启动“osk.exe”,这也将键盘带到前面
答案 1 :(得分:1)
由于带有密码框的平板电脑上的虚拟键盘错误, 我不得不想出一个解决方案和这里列出的其他建议 不是一个好人。 (文字仍然可读,只是略微 模糊处理。)
以下是解决方法:
<TextBox Name="Password" Text="{Binding Path=Password, UpdateSourceTrigger=PropertyChanged}" Height="50"
Margin="0,4,0,10" FontFamily="Courier New"
Foreground="{Binding ElementName=Password, Path=Background}">
<TextBox.TextDecorations>
<TextDecorationCollection>
<TextDecoration Location="Strikethrough" PenThicknessUnit="FontRenderingEmSize" >
<TextDecoration.Pen>
<Pen Brush="Black" Thickness="0.5" DashCap="Round" StartLineCap="Round" EndLineCap="Round">
<Pen.DashStyle>
<DashStyle Dashes="0.0, 1.2" Offset="0.6"/>
</Pen.DashStyle>
</Pen>
</TextDecoration.Pen>
</TextDecoration>
</TextDecorationCollection>
</TextBox.TextDecorations>
</TextBox>
MSDN来源: https://msdn.microsoft.com/en-us/library/system.windows.controls.passwordbox(VS.90).aspx
答案 2 :(得分:0)
是否可以强制弹出虚拟键盘?
是的,它是: How to make WPF input control show virtual Keyboard when it got focus in touch screen
答案 3 :(得分:0)
在Windows 10周年更新中运行的较新版本的WPF本身支持此功能。
我们使用WPFTabTip库将此支持添加到其他版本的Windows。