2011-10-28 10 views
4

私はWPFを使用していますが、レイアウトに問題があります。私はドッキングパネルを持っています(非WPF、私はちょうど私のコントロールをホストしました)。ユーザーがこのパネルを画面の左右にドッキングする場合、コントロールをレイアウトする必要があります。しかし、ユーザーがこのパネルを上または下にドッキングしたい場合は、コントロールを別の方法でレイアウトする必要があります。いくつかの条件に依存するWPFコントロールの動的レイアウト

私の質問は、いくつかの条件に依存するWPFコントロールの動的レイアウトを実装する最良の方法は何ですか?

私はグリッドを使用し、グリッド内のコントロールの位置を動的に変更できることを理解しています。しかし、私はこの解決策に本当に満足していません。私は、コードの介入なしで、xamlだけの解決策を探しています。そして、これが不可能な場合には、コードに最低限の介入が必要です。

ありがとうございます。

答えて

5

AvalonDockを使用すると、ビジュアルスタジオと非常によく似たドッキングシステムを利用できます。
これにより、ユーザーは自分が望むレイアウトを完全に制御でき、実装するのが難しくありません。

これをすばやく行うには、DockPanel.Dockプロパティを(必要に応じてIValueConverterとともに)ユーザ入力時に変更されるViewModel値にバインドすることをおすすめします。

+0

の変換を変更します。 'AvalonDock'はあなたが求めるものを与えることができます。 Infragistics、Telerikコントロールもあります。 –

+0

ありがとうございました。私はすでにネイティブのVisual Studioドッキングパネルを使用しています。私はVisual Studioパッケージを開発しています:) DockPanel.Dockのバインドは、良いと簡単な解決策です、ありがとう! – pingvinius

3

この目的のために、DataTemplateの機能は次のとおりです。

考え方は、複数のDataTemplateを提供し、次に、基準に基づいてDataTemplateSelector rturn right DataTemplateのカスタムインプリメンテーションを使用することです。

+0

ありがとうございました。これは、コントロールレイアウトの難しい違いのための素晴らしいソリューションです!どうもありがとう! – pingvinius

+1

申し訳ありません、stackoverflow.com同時に2つの回答をサポートしていませんが、あなたの答えはあまりにも良い解決策です! :) – pingvinius

1

利用ストーリーボードを見て、私はこれに同意コントロール

+0

ありがとうございました。私は、ソリューションを維持するのが難しく、実装に多くの時間を要すると思っています。 – pingvinius

関連する問題