Я сделал что-то похожее на это. В коде позади я использовал это:
layoutRoot.AddHandler(MouseLeftButtonDownEvent, new MouseButtonEventHandler((s, e) =>
{
//In this case, don't focus.
if (RecieveFocus != null &&
e.OriginalSource is Textbox &&
((e.OriginalSource as Textbox).Tag == "DONT FOCUS")
{
//do nothing, or whatever you want
}
else if(RecieveFocus != null)
RecieveFocus(this, new EventArgs());
}), true);
Вы можете проверить, является ли ваш исходный текст текстовым полем, и если это так, не делайте того, что вы хотите сделать иначе. Последнее логическое значение true для Add Handler говорит об обработке событий, помеченных как уже обработанные.
Я сделал событие под названием RecieveFocus, которое я обрабатываю и вызываю, даже если что-то щелкнуло в корне моего макета, за исключением (в данном случае) текстового поля с тегом «DONT FOCUS»