2017-03-02 8 views
0

ユーザーがクリックした後に私のborderをフォーカスさせようとしています。 現在、bordertabs経由でフォーカスすることは可能ですが、クリックするとユーザーにとってより便利になります。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?

コマンドを作成するよりも、他のことをする簡単な方法はありますか?

アプリがかなり小さいので、私はコマンドを使用したくありません。あなたがこの方法でのPreviewMouseLeftButtonDownとのPreviewMouseLeftButtonUpを処理することによって、クリックを作成することができます

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

編集

注:

答えて

2

簡単な方法としては、PreviewMouseDownまたは類似のマウスイベントを処理してフォーカスを設定することです

_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); 
    } 
} 
関連する問題