2011-01-16 15 views
0

より高度なUIデザインコントロールのために、ちょうど通常のC#.NETからWPFに切り替えました。私は非常にシンプルでなければならないことを非常に混乱させてしまいました。誰かが助けてくれることを願っています。WPFコントロールの質問

基本的には、両側にセクションがありたい(ほとんどの場合、これらはエクスパンダ内のリストボックスになります)、リストボックスは1つ下の中央にあり、大きなリッチテキストボックスは中央にあります。

私はちょうどDockPanelを取って、ChildFillをtrueに設定し、それぞれの場所にドッキングして、最後の場所を埋めることができるということを理解しました。リストボックスだけではDockPanelで動作しないようで、DockPanelはウィンドウのサイズを変更しても拡大しないようです。

そこで、基本的に私の質問は...ある

1)なぜDockPanelは、私は、ウィンドウのサイズを変更する際に縮小/拡大しないのですか?

2)ボタンはドックパネルで正常に動作していますが(例のすべての例のように)、代わりにリストボックスを使用すると正しく動作しないようです。どうしてこれなの?

3)リストボックスをエキスパンダーの内側に置くと、左側の2つが表示され、トップエキスパンダーが縮小された場合、下方のエキスパナーがギャップを埋めるように上向きになりますか?

私はActiProのようなものは本当に手に入れることができません.AvalonDockコントロールをMSVC 2010ツールバーに表示することができませんでしたので、デフォルトのコントロールを使用しています。

答えて

1

1)。私はちょうどDockPanelをテストして、ウィンドウのサイズが変更されたときに拡大/縮小します - Visual Studioでデフォルトでウィンドウに配置されているグリッドを削除しましたか?それがWindowsのサイズに比例してサイズ変更されないことを意味する場合、私はあなたがグリッドを使用する必要があると思う。

2)。繰り返しますが、リストボックスはうまく動作します。なぜ正しく動作しないのかを説明できる詳細はありますか?

3)。それはあなたが "成長を上げる"という意味にかかっています。上部のエキスパンダーが閉じている場合は、ヘッダーのみが表示され、下部のエキスパンダーは、最初のエクスパンダーのコンテンツが占めるスペースを取るために上に移動します(これがデフォルトの動作です)。

あなたの問題を特定するのに役立つXAMLを投稿できますか?

+0

あなたのコメントの後、私は戻ってきて、もう一度試して、ほとんどの部分がうまく機能するようにしました。グリッドを削除してしまったのはあなたのことでした.DockPanelが正しく動作しなくなった原因です。私が今抱えている唯一の問題は、2つの左メニューを水平ではなく縦に積み重ねる方法を考え出すことです。現在、両方のエクスパンダは左にドッキングされており、左上に1つ、左下に1つずつ表示されています。どうすれば解決できますか?ここに私のXAML http://pastebin.com/bh3huDeD –

+0

また、多くの助けてくれた答えに感謝します:) –

+0

エクスパンダをスタックするには、StackPanelを左にドッキングしてからエクスパンダをStackPanel。また、各エキスパンダー内にリストボックスを1つだけ入れたい場合、グリッドは不要です –