В конечном итоге это будет проблемой для именных областей. Значение, присвоенное ElementName, вероятно, не существует в той же области имен, к которой принадлежит TextBox.
Рассматривали ли вы просто использование: -
private void MainPage_Load(object sender, RoutedEventArgs e)
{
LayoutRoot.AddHandler(UIElement.KeyUpEvent, LayoutRoot_KeyUp, true)
}
private void LayoutRoot_Keyup(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
// invoke default operation here
}
}
Я прочитал ваш второй вопрос и статью в блоге. Кажется плохим запахом приписывать странные свойства различным элементам управления, таким как текстовое поле, для реализации кнопки по умолчанию, которая в конечном итоге не имеет ничего общего с текстовым полем.
Лучше было бы присоединить свойство к кнопке, которое должно быть объявлено по умолчанию (или создать подкласс Button
с именем DefaultButton
), и чтобы оно взаимодействовало с содержащим UserControl, Page или ChildWindow, чтобы наблюдать за клавишей ввода. В этом случае не потребуется задействовать другие элементы управления, не связанные напрямую с предоставлением этой функциональности.