如何隐藏键盘在WinRT的代码
本文关键字:WinRT 代码 键盘 何隐藏 隐藏 | 更新日期: 2023-09-27 17:50:31
在我的winRT c#应用程序中,我有一个文本框,当文本框被禁用时,可视键盘必须隐藏。但它并没有像预期的那样工作。
<Page
x:Class="App2.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App2"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<TextBox HorizontalAlignment="Left" Margin="458,60,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Height="98" Width="389" KeyUp="TextBox_KeyUp_1"/>
</Grid>
c# private void TextBox_KeyUp_1(object sender, KeyRoutedEventArgs e)
{
if (e.Key == Windows.System.VirtualKey.Enter)
(sender as TextBox).IsEnabled = false;
}
这是一个示例代码,您可以对照您的代码
尝试通过this:
将焦点放在另一个元素上 Descendents(MainFrame).OfType<Button>().FirstOrDefault().Focus(FocusState.Pointer);
public static IEnumerable<DependencyObject> Descendents(DependencyObject root)
{
int count = VisualTreeHelper.GetChildrenCount(root);
for (int i = 0; i < count; i++)
{
DependencyObject child = VisualTreeHelper.GetChild(root, i);
yield return child;
foreach (DependencyObject descendent in Descendents(child))
yield return descendent;
}
}
在我的例子中,我有一个带有几个TextBox字段的表单。在其中一个程序中,我不希望应用程序显示数字键盘。
为了防止这种情况,我指定了属性IsReadOnly="True"。
我使用了IsReadOnly属性而不是IsEnabled="False",因为IsEnabled禁用了tap事件,并且当我们在控件之间tab时它不会停止。
<TextBox Name="tbx" Style="{StaticResource TextBoxDefaultStyle}" TabIndex="13" IsReadOnly="True" />