Window.Top在.NET 4和.NET 3.5中返回不同的结果

4
我们有一个使用.NET 3.5开发的WPF项目,我们已经转换到.NET 4,以便从新功能中受益,但是我们主窗口的topleft属性与.NET 3.5中得到的结果不同。
在3.5中:top读取为-7,在4.0中读取为0(当我们启动应用程序时)。
但是,如果我们运行以下代码,则会像以前一样正常读取:
(this as Window).WindowState = System.Windows.WindowState.Normal;
(this as Window).WindowState = System.Windows.WindowState.Maximized;
1个回答

1

好的,我猜你是指最大化的窗口。如果你最大化一个窗口,边框会超出屏幕的正常范围,因此顶部和左侧会有负值。可能是.NET 4即使最大化也将其更改为零,而.NET 3.5则没有。

- SeriTools


正如我所说,当我们执行以下代码后: (this as Window).WindowState = System.Windows.WindowState.Normal; (this as Window).WindowState = System.Windows.WindowState.Maximized;窗口将被最大化,然后,顶部再次显示-7,就像在.NET 3.5时一样。 如果你是对的,那么即使在执行上述代码后,它也会继续读取零! - simo
那么,我建议您使用WinAPI来获取这些值。在最大化窗口的情况下,它将始终返回边框厚度(在本例中为-7)。;) - seri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接