AvalonDock Dirkster: установите положение плавающего LayoutDocument на курсор мыши в ILayoutUpdateStrategy.C#

Место общения программистов C#
Ответить
Anonymous
 AvalonDock Dirkster: установите положение плавающего LayoutDocument на курсор мыши в ILayoutUpdateStrategy.

Сообщение Anonymous »

В моей LayoutUpdateStrategy я установил некоторые LayoutDocuments как FloatingWindow. Это работает с помощью Float(). Позицией этого окна будет основной экран минимального размера. С помощью IsMaximized я могу максимизировать.
Я хочу, чтобы плавающее окно появлялось в позиции курсора с определенным размером.
Я так думал

Код: Выделить всё

int floatingWindowWidth = 500;
int floatingWindowHeight = 300;

var cursorPosition = Cursor.Position;

layoutDocument.FloatingWidth = floatingWindowWidth;
layoutDocument.FloatingHeight = floatingWindowHeight;
layoutDocument.FloatingLeft = cursorPosition.X - floatingWindowWidth / 2
layoutDocument.FloatingTop = cursorPosition.Y - floatingWindowHeight / 2
должно работать.
Это работает не очень хорошо. Кажется, что FloatingLeft и FloatingTop используют абсолютные значения пикселей монитора (мои экраны имеют 1980x1080, 1980x1200, 1980x1200), но Windows и курсор вычисляют и используют виртуальный размер, который имеет ширину 2400 и высоту 1500 для каждого экрана.
Это приводит к скользящему перемещению положения FloatingWindow.
Следующая идея заключалась в том, чтобы получить LayoutFloatingWindowControl и установить его положение, но я понятия не имею, как получить объект.
Есть идеи по этому поводу?

Подробнее здесь: https://stackoverflow.com/questions/790 ... e-cursor-i
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»