【问题标题】:How to avoid loss Focusing of TextBox in UWP?如何避免 UWP 中 TextBox 的焦点丢失?
【发布时间】:2021-09-17 05:46:47
【问题描述】:

我尝试了什么?

<Grid >
    <Canvas>
        <Canvas x:Name="Gesture" Width="500" Height="500" Background="Gray" AllowFocusOnInteraction="False">
            
        </Canvas>
        <StackPanel x:Name="SidePanel" Canvas.Left="500" Background="LightCyan" Width="100" Height="500">
            <TextBox x:Name="NameBox" Text="Prem" Width="100" Height="35"/>
            <Button Content="But" AllowFocusOnInteraction="False"/>
        </StackPanel>
    </Canvas>
</Grid>

我需要达到什么目标?

当文本框获得焦点时,如果我点击按钮,它不会失去焦点。因为,我设置了 Button 属性 - AllowFocusOnInteraction="False"。

当我在灰色区域(手势画布)内单击时,我需要实现相同的效果。我已设置画布属性-AllowFocusOnInteraction="False"。但它不会起作用。

当我在手势画布内单击时,文本框应该是焦点。怎么做?为什么 AllowFocusOnInteraction 在 Gesture Canvas 上不起作用?

【问题讨论】:

    标签: uwp uwp-xaml windows-community-toolkit


    【解决方案1】:

    您可以在LostFocus 事件中设置焦点状态,以确保您的 TextBox 不会失去焦点。

    您可以处理 TextBox 的 LostFocus 事件和 StackPanel 的 Tapped 事件。然后当StackPanel被点击时,在LostFocus事件中改变flag值并设置焦点状态

     <StackPanel x:Name="SidePanel" Canvas.Left="500" Background="LightCyan" Width="100" Height="500" Tapped="SidePanel_Tapped">
                <TextBox x:Name="NameBox" Text="Prem" Width="100" Height="35" LostFocus="NameBox_LostFocus"/>
                <Button Content="But" AllowFocusOnInteraction="False"/>
            </StackPanel>
    

    后面的代码

    private bool setFocus = true;
    
     private void NameBox_LostFocus(object sender, RoutedEventArgs e)
        {
            if (setFocus == true)
            {
                NameBox.Focus(FocusState.Programmatic);
            }
        }
    
        private void SidePanel_Tapped(object sender, TappedRoutedEventArgs e)
        {
            setFocus = true;
        }
    

    【讨论】:

    • 是否总是在 Lost Focus 事件之前触发 tapped 事件?
    • @PremKumarShanmugam 是的,点击事件在失去焦点事件之前触发
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 2011-07-30
    • 1970-01-01
    • 2012-09-10
    • 2021-01-28
    相关资源
    最近更新 更多