Вы должны использовать свойство Target:
<Label Content="_Stuff:" Target="{x:Reference TextBox1}"
MouseLeftButtonUp="Label_MouseLeftButtonUp"/>
<TextBox Name="TextBox1" />
private void Label_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (e.ClickCount == 1) //Note that this is a lie, this does not check for a "real" click
{
var label = (Label)sender;
Keyboard.Focus(label.Target);
}
}
Весь смысл использования Label в первую очередь вместо TextBlock заключается в использовании его ассоциативной функциональности, см. Ссылку в MSDN .
О моей заметке я задал вопрос о том, как получить реальный клик здесь , если вам интересно.