即使在测量/排列之后,网格中自定义控件的ActualWidth和ActualHeight也为零

时间:2013-01-09 22:17:36

标签: .net xaml windows-8 actualwidth actualheight

我有一个带有自定义控件GameView的Win8应用程序,我已经在我的页面上实例化了三次(如gvMap,gvOurBase和gvEnemyBase),并放入网格中。我需要获得控件的实际大小,以便我可以设置RenderTransform并使用适当的缩放渲染所有内容。

但是,每当我尝试获取控件的ActualWidthActualHeight时,我总是会得到零。即使我等到页面加载并调用我的控件上的测量和排列,也会发生这种情况。

如何获得控件的大小?或者我不允许他们在网格中这样做?还有另外一种方法可以让RenderTransform不依赖于控件的大小吗?我希望每个控件显示整个游戏地图的特定部分 - gvMap显示整个地图,gvOurBase显示玩家拥有城市的地图部分,gvEnemyBase显示敌人拥有城市的地图部分。

2 个答案:

答案 0 :(得分:2)

这可能发生。我建议MyControl.RenderSize.Width而不是MyControl.ActualWidth。在动态数据绑定产生的布局中,Actual值不会始终填充。

答案 1 :(得分:0)

显然我需要在自定义控件类上覆盖MeasureOverride。糟糕!