簡體   English   中英

WPF:單擊后聚焦邊框

[英]WPF: Focus border after click

我試圖在用戶單擊border后使border集中。 當前可以通過tabs聚焦border ,但是通過單擊將為用戶帶來更多便利。

        <Border x:Name="BorderFileInfo" Focusable="True" BorderBrush="LightGray" BorderThickness="1">
            <Grid Margin="3,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Left">
                <!-- CONTENT CTRL -->
            </Grid>
        </Border>

我在另一篇文章中看到,可以使用InputBinding捕獲click事件,但是我不知道如何在不使用命令的情況下將border聚焦。

Stackoverflow:為什么WPF邊框控件沒有mousedoubleclick事件?

除了必須創建命令之外,還有其他簡便的方法嗎?

該應用程序非常小,因此我不需要使用命令。

一種簡單的方法是處理PreviewMouseDown或類似的鼠標事件並設置焦點:

private void Border_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
     Keyboard.Focus(sender as Border);
}

編輯

請注意,您可以通過以下方式處理PreviewMouseLeftButtonDown和PreviewMouseLeftButtonUp來創建Click:

_isdown =false;
private void Border_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
     _isdown =true;
}
private void Border_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
    if ( _isdown)
    {
         _isdown = false;
         Keyboard.Focus(sender as Border);
     }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM