WPF - 从后面的代码打开/关闭键盘

时间:2017-11-22 16:06:31

标签: c# wpf resourcedictionary

我的应用程序中有一个自定义触摸屏键盘:https://www.codeproject.com/Articles/32568/A-Touch-Screen-Keyboard-Control-in-WPF。 我还有一个包含所有样式和模板的ResourceDictionary。在TextBox样式中,我可以设置键盘ON / OFF:

<Style TargetType="{x:Type TextBox}">     
    <Setter Property="FontSize" Value="14" />
    <Setter Property="Padding" Value="4" />
    <Setter Property="k:TouchScreenKeyboard.TouchScreenKeyboard" Value="True"/>
</Style>

我希望用户能够从UI打开或关闭它,但无法弄清楚如何从后面的代码到达此属性。我想在没有命名样式的情况下制作它,因为它在整个应用程序中非常常用。 我试过这个,但是(毫不奇怪)得到ArgumentNotFoundException:

Style s = Application.Current.FindResource("defTextBox") as Style;
s.RegisterName("Keyboard.TouchScreenKeyboard.TouchScreenKeyBoard",false);

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您应该像这样为TouchScreenKeyboard个人设置TextBox附加属性:

TouchScreenKeyboard.SetTouchScreenKeyboard(textBox1, false);

在隐式Style本身已经应用于所有TextBox元素之后更改其定义并不是很有意义。您应该在XAML中定义默认值,然后在需要时在运行时动态更改单个TextBoxes的值。