2013-12-16 11 views
6

ツリービューに似た属性を持つWebサイトを知っている人はいますか?マイクロソフトのウェブサイトのダウンロードセグメントのように。プラスボタンを押すと、拡大され、その下のすべてがさらに下に移動します。マイナスボタンを押すと、ブロック内のすべてが崩壊し、下のコンテンツが元に戻ります。WebページのようにWPFで展開および折りたたむ方法

許可されたC#はHTMLとCSSのようなものではありませんが、WPFアプリケーションで同じことを実行できるかどうかを知りたかっただけです。

現在、ツールボックス内のツリービューは、テキストのみを実装できるようです。ラベルやテキストボックスなどの追加オブジェクトは許可されません。

私はEXPANDERを発見しました。コンテンツを拡張したり折りたたんだりするのはうまくやっていますが、その下にあるオブジェクトを元に戻したり戻したりすることはできません。ここに私が望むシナリオの例があります。

exibitA exibitB

私はそれが助け場合microsoft's download pageだろうためつもりだものの一例。展開ボタンと折り畳みボタンの仕組み

これを行う方法はありますか?

+2

エキスパンダーは私が使っているものですが、「その下のオブジェクトを引き上げたり、戻したりすることはできません」と正確に何を意味していますか? –

+1

任意のオブジェクトタイプをWPFツリービューに表示できます。この記事は非常に良いです:http://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewMode – Baldrick

+0

私はそれが非常にうまく隠され、私はそれの上にあるか裏にあるテキストをプッシュするように感じることはできません。ツリービューの場合は – Offer

答えて

14

ここでは、Microsoftのダウンロードページの使用方法としてExpanderを使用する例を示します。 RowDefinitionsHeightAutoに設定されます。そうでない場合、IsExpandedがfalseに設定されている場合、Expanderは崩壊しません。

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 
    <Expander IsExpanded="True"> 
     <Border BorderBrush="Red" BorderThickness="2"> 
      <TextBlock Height="50" Text="Hello" /> 
     </Border> 
    </Expander> 
    <Expander Grid.Row="1" IsExpanded="True"> 
     <Border BorderBrush="Green" BorderThickness="2"> 
      <TextBlock Height="50" Text="World" /> 
     </Border> 
    </Expander> 
</Grid> 
1

普通のツリービューでお聞きしたいことができます。

この素晴らしいコード・プロジェクトの説明を参照してください:

http://www.codeproject.com/Articles/124644/Basic-Understanding-of-Tree-View-in-WPF

+1

ありがとうございました。私は記事が十分にうまく機能することを確認することができます。しかし、彼の解決策は、私のコードを根っこに遡る必要はなく、デザインについてはもう一度やり直す必要はないということを意味していましたが、私は自分のプロジェクトを完了する前にこれをたくさん使っています。再度、感謝します。 – Offer

0

WPF Expanderコンポーネントは、正確に何をしたい行い、適切なパネルでホストされている場合には、他のコントロールを押し下げます。たとえば、StackPanelを使用してみてください。

関連する問題