2012-03-23 7 views
0

私はwpfページでかなり大きなフォームを得ました。グリッド上にまとめていますが、すべての要素がページを乱雑にしています。私はフォームを小さなusercontrolsに分割し、それを1つのフォームとしてページにまとめていると考えました。それはうまく動作しませんでした:SharedSizeScope on a Grid makes the form 'dance'wpfの大きなフォーム(50要素程度)に関する問題

私はフォームを「ウィザードスタイル」のページに分割することができます。次のボタンで各ユーザーコントロールを処理しますが、分割しないでくださいエンドユーザーは1ページにすべてを収めているので、いくつかのページがあります。また、データの検証/格納は実際には大きなバング操作であり、最初のページ/ユーザーコントロールのいずれかで何か問題が生じた場合にフィードバックを提供することを難しくしています。

だから今?私は本当に小さな要素をすべてページの1つの大きなグリッドに直接配置したいと思っています。私はちょうどそれが間違っていると感じ - それは、メンテナンスの悪夢になります - 私も「私はXAMLで#regionタグのいくつかの種類があるなあ」考え始めた - 私は私が間違っているを知っ意味;)

何ができます私がやります?

+0

私は通常、たくさんのコントロールを持つフォームを持っているときに、GroupBoxesまたはTabItemにそれらを配置します。 – SvenG

答えて

2

私は強くグリッド(または他のパネル)のように、ネストされたコンテナコントロールを使用することをお勧めしますより多くのグリッド内の他のグリッドの内側など

いくつかのネストレベルを有することが非常に一般的であるため、階層的に複雑なレイアウトを分割複雑でない複数のサブレイアウトに分割することができます。これにより、すべての作業を行う大きなコンテナと比べて、レイアウトが大幅に簡単になります(失敗したShardSizeScopeのアプローチを参照)。

コンテナの分かりやすい階層を作成したら、Visual Studio XAMLエディタのコード折りたたみ機能を使用して、すべてのXAMLを簡単に追跡できます。

+0

しかし、どうやって私のページが膨れ上がるのを防ぎますか?私はまだ自分のグリッドを持つたくさんのusercontrolsを作成し、そのグリッドのページにまとめておくべきだと思いますか?セルを整列させるのと同じ問題が生じるのではないでしょうか? –

+0

なぜUserControlsですか?パネル内のいくつかの要素をグループ化するだけで、他のPanel内の他の要素はほとんどグループ化しません。次に、これらのパネルを他のパネルにグループ化して、パネルの階層を作成します。あなたは膨満感をどういう意味ですか?いずれかのウィンドウ/フォーム/ページにすべての要素を含める必要があります。 – Clemens

+0

私はClemensに同意します、私の主なアプリケーションには約2000個のコントロールが含まれていますが、異なるパネルにグループ分けされており、維持することは難しくありません。 – mlemay

関連する問題