相关疑难解决方法(0)

如何找到最大化窗口的位置?

我需要知道最大化窗口的位置.

WPF窗口具有Top和Left属性,用于指定窗口的位置.但是,如果最大化窗口,这些属性会使窗口的值保持正常状态.

如果您在单屏设置上运行,则最大化位置自然是(0,0).但是,如果您有多个屏幕不一定是真的.如果在主屏幕上最大化窗口,窗口将只有位置(0,0).

那么......有没有办法找出最大化窗口的位置(最好是与Top和Left属性相同的逻辑单元)?

wpf window

13
推荐指数
5
解决办法
7596
查看次数

Window ActualTop,ActualLeft

在WPF中检索窗口位置的正确方法是什么?

这是我做的一些尝试.第一次尝试,显而易见

Point GetPosition(Window win)
{
    return new Point(win.Top, win.Left);
}
Run Code Online (Sandbox Code Playgroud)

但是当窗口最大化时,这会返回"错误"的位置.第二次尝试:

Point GetPosition(Window win)
{
    if (win.WindowState == WindowState.Maximized)
        return new Point(0, 0);
    else
        return new Point(win.Top, win.Left);
}
Run Code Online (Sandbox Code Playgroud)

几乎在那里,但仍然存在一个问题:当你有两个(或更多)屏幕并且窗口在第二个屏幕中最大化时,你会得到一个(0,0)位置,它不会反映窗口的实际位置.

我注意到Window有_actualTop和_actualLeft私有成员,但没有公共属性来公开它们.

你如何检索正确的值?

.net c# wpf

5
推荐指数
3
解决办法
3547
查看次数

标签 统计

wpf ×2

.net ×1

c# ×1

window ×1