Показать '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. И, конечно же, руководство звучит очень хорошо, но все равно требует, чтобы вы знали точную позицию отправителя (родителя).