【问题标题】:WPF - Turn on/off keyboard from code behindWPF - 从后面的代码打开/关闭键盘
【发布时间】:2017-11-22 16:06:31
【问题描述】:

在我的应用程序中有一个自定义触摸屏键盘是根据以下内容构建的: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);

任何帮助将不胜感激!

【问题讨论】:

  • 你想做什么?将样式的定义应用于 TextBoxes 后更改样式的定义无效。

标签: c# wpf resourcedictionary


【解决方案1】:

您应该能够为单个 TextBox 设置 TouchScreenKeyboard 附加属性,如下所示:

TouchScreenKeyboard.SetTouchScreenKeyboard(textBox1, false);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多