c# – Windows Phone 8.1 XAML应用程序.如何防止不适当的自动对
发布时间:2020-12-15 04:23:49 所属栏目:百科 来源:网络整理
导读:想象一下以下简单的页面标记: Page x:Class="AutoFocusBug.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" StackPanel !--Button x:Name="FocusHolder" Width="0"
想象一下以下简单的页面标记:
<Page x:Class="AutoFocusBug.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <StackPanel> <!--<Button x:Name="FocusHolder" Width="0" Height="0" MinHeight="0" MinWidth="0"/>--> <TextBox Text="zxczczczczx"/> <Button x:Name="Button1" Content="Button1" Click="ButtonBase_OnClick"/> </StackPanel> </Page> 和以下代码隐藏: private void ButtonBase_OnClick(object sender,RoutedEventArgs e) { Button1.Visibility = Visibility.Collapsed; } 当我单击Button1按钮时,它会隐藏(这是预期的和期望的)但由于某种原因,TextBox会自动获得焦点并出现屏幕键盘.我不希望这种意外的自动对焦. 我可以尝试在Click处理程序中使用焦点做一些事情,但在实际应用程序中,它是使用带有命令等的ViewModel实现的,它看起来像脏黑客(并且即使我在隐藏按钮后立即更改焦点,键盘也会短时间出现). 我找到的第二种方法是在文本框之前的某处(注释FocusHolder)创建“隐形”按钮,这样做要好一些,但看起来也不正确. 那是什么?这是一种我能以某种方式配置为从重叠元素“重定向”焦点的机制吗?或者这是一个错误?什么是防止这种不良自动对焦的正确方法? 解决方法
这是因为Tab索引从按钮切换到文本框.这对WP8.1来说非常讨厌.我没有找到一个“好”的解决方案,但这可能比你当前的解决方案更清洁.
xaml <TextBox x:Name="myTextBox" Text="zxczczczczx"/> 功能 private void ButtonBase_OnClick(object sender,RoutedEventArgs e) { myTextBox.IsTabStop = false; Button1.Visibility = Visibility.Collapsed; myTextBox.IsTabStop = true; } 祝好运. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |