相关疑难解决方法(0)

窗口最大化/未最大化时的事件

当您最大化表单或取消最大化时,是否会触发事件?

在你说Resize或之前SizeChanged:只有Size实际改变才会被解雇.如果您的窗口大小与最大化窗口大小相等,则它们不会触发.位置看起来是下一个最好的选择,但这再次感觉就像巧合赌博.

c# winforms

53
推荐指数
5
解决办法
5万
查看次数

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
查看次数

标签 统计

c# ×2

.net ×1

winforms ×1

wpf ×1