2017-03-02 62 views
0

我試圖在用戶點擊它後重點關注我的border。 目前有可能通過tabs關注border,但通過點擊會更方便用戶。WPF:點擊後的焦點邊框

 <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點擊事件possability,但我不知道如何事後集中border不使用命令。

Stackoverflow: Why doesnt WPF border control have a mousedoubleclick event?

是否有一個簡單的方法來做到這一點除了不必創建命令?

該應用程序非常小,所以我不想使用命令,如果我不必。

回答

2

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

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

編輯

請注意,您可以通過這種方式處理的PreviewMouseLeftButtonDown和的PreviewMouseLeftButtonUp創建點擊:

_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); 
    } 
}