Ответ 1
Проблема заключается в том, что панель инструментов помещает вашу кнопку в другой FocusManager.FocusScope
. Это означает, что оба Button
и TextBox
могут получать логический фокус в одно и то же время, каждый в своем собственном объеме. Обычно это хорошо, поскольку вы обычно не хотите терять фокус в своей области главного окна, когда вы выбираете пункты меню и кнопки ToolBar, но в вашем случае это мешает вам работать.
Хотя вы можете переопределить свойство FocusManager.IsFocusScope
на панели инструментов и получить необходимый эффект, это, вероятно, не самый лучший план, поскольку он заставит все остальные кнопки панели инструментов также украсть фокус из области вашего основного окна.
Вместо этого вы можете использовать одно из нескольких простых решений:
- Поместите свою кнопку за пределы панели инструментов
- Добавить фокусное = "истинное" управление в область основного окна и сфокусировать его при нажатии кнопки
- Вручную добавьте обновление, вызвав
textBox.GetBindingExpression(TextBox.TextProperty).UpdateSource()
- Временно установите Focusable = "true" на элементе управления в главном окне, установите для него фокус, затем сразу установите Focusable = "false"