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

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

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

Я хочу установить верхнюю и левую часть пользовательского окна в соответствии с активированной RadPane

1 ответ

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

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

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

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

Другие вопросы по тегам