locked
TreeViewItem を TreeView の枠内にぴったりくっつけたい RRS feed

  • 全般的な情報交換

  • 下図のような TreeView で、
    TreeViewItem を TreeView の枠内にぴったりくっつけたいと考えています。


    図1 : xaml の TreeView



    html の <ul> では、css で手を加えなければ 図1 のように<ul> の padding が効いて
    <ul> と <li> の間に隙間ができます。



    図2に css を適用すると、図3 のように隙間のないリストのような表現ができます。



    この図3のように xaml の TreeView で TreeViewItem を枠にくっつけるにはどうしたらいいのでしょう?

    Padding を片っ端に 0 にしても、どうしても隙間が残ってしまいます。





    • 編集済み custar 2012年2月12日 22:19
    • 種類を変更済み 山本春海 2012年2月23日 7:00 自己解決されているようなのでステータスを変更させていただきました。
    2012年2月12日 21:53

すべての返信

  • こんにちは。

    Margin="-30,0,0,0" とかは、姑息でしょうか(^^;

    2012年2月14日 0:57
  • Keiichi Oumi さん、アドバイス有り難うございます。

    やってみましたが、余りにも手間が掛かったため断念しました。


    で、TreeView と指定しておきながら申し訳ありませんが、ListBox に変更しました。

    本来の目的は、
    Container に隙間なく Item が詰まっている状態を作ってみようというつもりだったので、
    わざわざ margin や padding が設けられている TreeView を使わず、
    最初からそうなっている ListBox で検討すべきだったと反省しています。


    その結果、以下となりました。
    # 当たり前の結果ですが。


    図1 : Vertical



    図2 : Horizontal


    <listbox itemssource="{Binding ElementName=bDomainDataSource, Path=Data}">
      <listbox.itemtemplate>
        <datatemplate>
          <textblock text="{Binding Path=Name}"></textblock>
        </datatemplate>
      </listbox.itemtemplate>
    </listbox>
      
    <listbox itemssource="{Binding ElementName=bDomainDataSource, Path=Data}">
      <listbox.itemtemplate>
        <datatemplate>
          <textblock text="{Binding Path=Name}"></textblock>
        </datatemplate>
      </listbox.itemtemplate>
      <listbox.itemspanel>
        <itemspaneltemplate>
          <stackpanel orientation="Horizontal"></stackpanel>
        </itemspaneltemplate>
      </listbox.itemspanel>
    </listbox>


    • 編集済み custar 2012年2月14日 7:02
    2012年2月14日 6:59