单击单个按钮时切换按钮内容
本文关键字:按钮 单个 单击 | 更新日期: 2023-09-27 18:31:34
我正在为乌尔都语开发Windows Phone键盘项目。我在 XAML 中创建自定义键盘布局,并为非 shift 键添加了字符并且运行良好。
但现在我被困在班次关键功能上。例如,当用户单击shift键时,应切换其他键的字符;就像在英文键盘中一样。搜索后,我只得到了一个切换按钮解决方案,这对我来说还不够,因为我的情况不同。
我需要帮助才能继续项目。如果您有不同的有效方法,请用很少的例子建议我。任何帮助将不胜感激。
简单的方法
简单的方法是制作 2 个布局相同的键盘,一个用于显示普通字符,另一个用于显示"移动字符"。将一个键盘堆叠在另一个键盘上,并根据shift button
的状态切换键盘的可见性,您可以在shift button
的Checked
和Unchecked
事件处理程序中执行此操作(将shift按钮声明为ToggleButton
)。
绑定方式
如果使用 MVVM 模式,则可以将 shift 键状态绑定到视图模型中的Boolean property
,例如 ShiftPress
,以便在切换 shift 键时,ShiftPress
会自动更新。
而这次你只需要定义一个键盘。并且需要将键的 UI 和命令(按下键时的执行逻辑)绑定到此ShiftPress
属性。
你最终得到一个这样的键盘(这不是工作代码,只是说明如何绑定键的 UI 和命令以查看模型属性)。
<ItemsControl x:Name="myKeyboard" ItemsSource="{Binding Characters}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Content="{Binding Char, Converter={StaticResource myConverter},
ConverterParameter={Binding ShiftPress, RelativeResource...}}",
Command="{Binding KeyPressCommand}"
CommandParameter="{Binding Char}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>