2016-05-09 3 views
0

ラベルを付随していないusercontrolに一連のテキストボックスがあります。 ユーザーがこれらのテキストボックスにフォーカスを設定するには、Alt +(Some Key)を押す手段を提供する必要があります。付随するラベルなしでTextBox AccessTextを設定する

これを行う方法でWPFの「AccessText」を使用する場合は、各テキストボックスの横にLabelを配置し、ショートカットキーの前に '_'文字でコンテンツを指定し、各ラベルの "Target"プロパティをそれぞれのテキストボックスに追加します。

この場合、各テキストボックスにはラベルがありませんが、存在しません。

LabelなしでテキストボックスにAccessTextショートカットキーを指定することはできますか?

答えて

0

あなたはキーの組み合わせを押すと、テキストボックスにその焦点の後に処理することができます:

*の.xamlを:

<UserControl Loaded="UserControl_Loaded"> 
    <Grid> 
     <StackPanel> 
      <TextBox Height="30" x:Name="txt1"/> 
      <TextBox Height="30" x:Name="txt2"/> 
     </StackPanel> 
    </Grid> 
</UserControl> 

* .csファイル

public UserControl() 
    { 
     InitializeComponent(); 
    } 

    private void KeyDownEvent(object sender, KeyEventArgs e) 
    { 
     bool x = Keyboard.IsKeyDown(Key.System); 
     if (Keyboard.IsKeyDown(Key.System) && Keyboard.IsKeyDown(Key.B))// Alt+B 
     { 
      txt2.Focusable = true; 
      txt2.Focus(); 
     } 
    } 

    private void UserControl_Loaded(object sender, RoutedEventArgs e) 
    { 
     var window = Window.GetWindow(this); 
     window.KeyDown += KeyDownEvent; 
     txt1.Focusable = true; 
     txt1.Focus(); 
    } 
} 
+0

おかげアミンを。私はそれがこのようなものになると感じていた。私はkeypressイベントを自分で処理する必要がなく、xamlでキーの組み合わせを設定できるようにしたいと考えていました。しかし、あなたのコードを使って、マークアップでこれを設定できるように、アタッチされたプロパティやビヘイビアへのパスを見ることができます。私は、誰かが何かを追加する場合に備えて、これを未回答のままにしておきます。 – thornhill