Показать «MessageBox» в центре RadPane

У меня есть несколько RadPane и RadPanGroups в моем приложении WPF, созданном с использованием элементов управления Telerik.

Я хочу показать настраиваемое окно (своего рода окно сообщения), которое находится в центре определенной RadPane, а не в центре всего окна, родительского окна или экрана.

Я хочу установить Top и Left настраиваемого окна в соответствии с активированным RadPane


person Upendhar Singirikonda    schedule 29.08.2018    source источник
comment
Предоставьте минимальный, полный и поддающийся проверке пример вашего вопроса. idownvotedbecau.se/noattempt   -  person absoluteAquarian    schedule 29.08.2018


Ответы (1)


Это может быть небольшой обходной путь, но эта тема может вам помочь. Идея состоит в том, чтобы зафиксировать положение мыши при запуске события. Вы не сказали, что заставляет ваше окно открываться, я предполагаю, что это MouseDoubleClickEvent, так что это может вам подойти.

Другой вариант (не пробовал) — захватить параметры sender в вашем событии. После запуска события у вас есть отправитель (который является объектом, в вашем случае RadPane), который возвращает VisualOffset компонента (который имеет 4 координаты). Затем вы можете вручную установить положение окна следующим образом:

Window window = new Window();
window.Left = offsetTop - x;
window.Top = offsetLeft - y;

К сожалению, свойство WindowStartupLocation позволяет вам установить его только в CenterOwner (центр родительского окна), CenterScreen и Manual. И да, Manual звучит действительно хорошо, но все же требует, чтобы вы знали точную позицию отправителя (родителя).

person Vanghern    schedule 06.09.2018