窗口放置和易于访问放大

时间:2015-03-02 16:00:18

标签: wpf magnification

我正在尝试在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 个答案:

没有答案