Расположение окон и простота увеличения доступа

Я пытаюсь реализовать то, что в действительности представляет собой модальное всплывающее окно в WPF.

Я сделал это с прозрачным окном и ShowDialog(). Окно может быть запущено любым из нескольких сотен элементов управления в матрице (dm в примере ниже). dm[r,c].tb фактически является элементом управления TextBox.

Следующий код должен был сделать свое дело просто отлично:

                var location = dm[r, c].tb.PointToScreen(new Point(0, 0));
                popupWindow.Left = location.X;
                popupWindow.Top = location.Y - popupWindow.Height;
                popupWindow.ShowDialog();

Фактически, окно отображалось справа от элемента управления и ниже, чем дальше, тем больше элемент управления был вниз или вправо в главном окне.

Мне потребовалось некоторое время, чтобы осознать, что на самом деле это было смещено в 1,5 раза, и причина в том, что, будучи сильно ослабленным зрением, я управляю своей машиной с увеличением 150%, используя настройку легкого доступа.

Код легко исправить, чтобы учесть это на моей машине:

                var location = dm[r, c].tb.PointToScreen(new Point(0, 0));
                popupWindow.Left = location.X/1.5;
                popupWindow.Top = location.Y/1.5 - popupWindow.Height;
                popupWindow.ShowDialog();

Это дает правильные результаты на моей машине, но как мне получить коэффициент увеличения легкости доступа, чтобы заставить его работать независимо от увеличения, которое используют люди?

0 ответов

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