0

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

但是,每当我尝试获取控件的ActualWidthorActualHeight时,我总是得到零。即使我等到页面加载并在我的控件上调用 Measure and Arrange 也会发生这种情况。

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

4

2 回答 2

2

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

于 2013-01-11T06:01:04.973 回答
0

显然我需要实际覆盖MeasureOverride我的自定义控件类。哎呀!

于 2013-01-11T20:25:22.757 回答