gpt4 book ai didi

c# - Windows Phone 8.1 XAML 应用程序。如何防止不恰当的自动调焦?

转载 作者:太空狗 更新时间:2023-10-29 21:22:13 25 4
gpt4 key购买 nike

想象一下以下简单的页面标记:

<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 和命令等实现的,它看起来像肮脏的 hack(而且键盘甚至会出现很短的时间如果我在隐藏按钮后立即改变焦点)。

我发现的第二种方法是在文本框之前的某处创建“不可见”按钮(注释 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;
}

祝你好运。

关于c# - Windows Phone 8.1 XAML 应用程序。如何防止不恰当的自动调焦?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27778517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com