我有一个带有自定义控件GameView的Win8应用程序,我已经在我的页面上实例化了三次(如gvMap,gvOurBase和gvEnemyBase),并放入网格中。我需要获得控件的实际大小,以便我可以设置RenderTransform并使用适当的缩放渲染所有内容。
但是,每当我尝试获取控件的ActualWidth
或ActualHeight
时,我总是会得到零。即使我等到页面加载并调用我的控件上的测量和排列,也会发生这种情况。
如何获得控件的大小?或者我不允许他们在网格中这样做?还有另外一种方法可以让RenderTransform不依赖于控件的大小吗?我希望每个控件显示整个游戏地图的特定部分 - gvMap显示整个地图,gvOurBase显示玩家拥有城市的地图部分,gvEnemyBase显示敌人拥有城市的地图部分。
答案 0 :(得分:2)
这可能发生。我建议MyControl.RenderSize.Width
而不是MyControl.ActualWidth
。在动态数据绑定产生的布局中,Actual
值不会始终填充。
答案 1 :(得分:0)
显然我需要在自定义控件类上覆盖MeasureOverride
。糟糕!