当最大化窗口时,屏幕的Width
属性似乎不会更新到最大化宽度。如果我调整它的大小,一切正常,但不是最大化时。
我的代码如下:
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{
UpdateColumns();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
UpdateColumns();
}
private void UpdateColumns()
{
ColumnCount = Math.Round(Width/150);
statusBarItemColumnCount.Content = ColumnCount;
button1.Content = ColumnCount + " " + Width;
}
private void Window_StateChanged(object sender, EventArgs e)
{
UpdateColumns();
}
3条答案
按热度按时间ercv8c1e1#
看一下
ActualWidth
,而不是Width
。of1yzvn42#
尝试使用
ActualWidth
而不是Width
,这应该可以修复它dluptydi3#
把它放在任何需要width和height的代码的顶部:
var RealWidth = Math.Max(Width,ActualWidth);
var RealHeight = Math.Max(Width,ActualHeight);
然后使用RealWidth和RealHeight变量,因为它们总是正确的。
如果你遵循了所有这些,并且你想要一个优雅的解决方案,那么做两个属性。
然后,您可以在所有情况下使用RealWidth和RealHeight。如果在类外部需要属性,则将其设置为Internal或Public。
快乐编程大家!!!!!