0

カスタム コントロール、GameView を持つ Win8 アプリがあります。このアプリは、ページ上で (gvMap、gvOurBase、および gvEnemyBase として) 3 回インスタンス化し、グリッドに配置しました。コントロールの実際のサイズを取得して、RenderTransform を設定し、適切なスケーリングですべてをレンダリングできるようにする必要があります。

ただし、コントロールのActualWidthまたはを取得しようとすると、常にゼロになります。ActualHeightこれは、ページが読み込まれるまで待って、コントロールで Measure と 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 に答える