いくつかの条件に依存するWPFコントロールの動的レイアウト

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

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

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

前もって感謝します。

4

3 答え

AvalonDock を使って、ドッキングシステムをVisual Studioのようなものにすることができます。
これにより、ユーザーは自分が望むレイアウトを自由にコントロールすることができ、実装するのが難しくありません。

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

5
追加された
これに同意する。 AvalonDock はあなたの求めるものを提供します。 Infragistics、Telerikコントロールもあります。
追加された 著者 WPF-it,
答えてくれてありがとう。私はすでにネイティブのVisual Studioドッキングパネルを使用しています。私はVisual Studioパッケージを開発しています:) DockPanel.Dockのバインドは、良いと簡単な解決策です、ありがとう!
追加された 著者 pingvinius,

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

このアイデアは、複数のDataTemplateを用意して、 DataTemplateSelector 基準に基づいてDataTemplateを右折します。

3
追加された
答えてくれてありがとう。これは、コントロールレイアウトの難しい違いのための素晴らしいソリューションです!どうもありがとう!
追加された 著者 pingvinius,
申し訳ありませんstackoverflow.com同時に2つの回答をサポートしていませんが、あなたの答えも良い解決策です! :)
追加された 著者 pingvinius,

StoryBoardを使用し、コントロールの変換を変更する

1
追加された
答えてくれてありがとう。私は、ソリューションを維持するのが難しく、実装に多くの時間を要すると思っています。
追加された 著者 pingvinius,