Я не думаю, что это возможно, по крайней мере, без какого-либо дополнительного шаблонного кода ... WPF и Windows Forms имеют совершенно другую модель, а свойство Target
не предназначено для ссылки на элементы управления WinForms.
Вместо этого, я думаю, вы должны использовать реализацию WPF MaskedTextBox
, например , эту (вы можете найти много других примеров в Google). Использование элементов управления WinForms в приложении WPF редко бывает хорошей идеей, если вы можете избежать этого ...
РЕДАКТИРОВАТЬ: Я только что проверил документ: определенно невозможно сделать то, что вы хотите, потому что тип свойства Label.Target
равен UIElement
, а элементы управления WinForms явно не UIElement
s ...
ОБНОВЛЕНИЕ: ОК, я неправильно прочитал ваш код ... вы ссылаетесь на WindowsFormsHost
, который является UIElement
. Тот, кто голосовал за меня, тоже был неправ; -)
Думаю, проблема в том, что WindowsFormsHost
фокусируется при нажатии Alt-S, а не MaskedTextBox
. Вот быстрый обходной путь:
XAML:
<WindowsFormsHost
Name="tbStartTime"
TabIndex="13"
GotFocus="tbStartTime_GotFocus">
<wf:MaskedTextBox Name="wfStartTime" Mask="90:00" />
</WindowsFormsHost>
Код-позади:
private void tbStartTime_GotFocus(object sender, RoutedEventArgs e)
{
tbStartTime.Child.Focus();
}
В любом случае, мой предыдущий совет по-прежнему актуален: вам лучше использовать WPF MaskedTextBox ...