2009-09-04 9 views
1

TreeViewのデフォルトItemsPanelは、というデフォルトの向きを持つStackPanelです。私はHorizontalStackPanelの向きを変更している:私は、ツリー内の下位項目を水平方向の代わりに垂直方向に積層することが期待されるTreeView Itemsパネルの向きを変更しても効果がありません

<controls:TreeView> 
    <controls:TreeView.ItemsPanel> 
    <ItemsPanelTemplate> 
     <StackPanel Orientation="Horizontal"/> 
    </ItemsPanelTemplate> 
    </controls:TreeView.ItemsPanel> 
    <controls:TreeViewItem Header="Root" IsExpanded="True"> 
    <controls:TreeViewItem Header="Alfa"/> 
    <controls:TreeViewItem Header="Beta"/> 
    <controls:TreeViewItem Header="Gamma"/> 
    </controls:TreeViewItem> 
</controls:TreeView> 

、私はVerticalからHorizontalに向きを入れ替えるとき、私は目に見える変化が見られないし、再び。 StackPanelOrientationItemsPresenterのアイテムのレイアウトに影響を与えないのはなぜですか?

+0

は、それはあなたが自分自身ItemsPresenterツリービュー項目をretemplateする必要があることは可能ですか? (TreeViewItem.xaml:http://silverlight.codeplex.com/sourcecontrol/changeset/view/25992?projectName=Silverlight#638164) –

答えて

1

ジェフ・ウィルコックスのコメントが私の考えを引き寄せ、私が間違ったことを理解しました。私はTreeViewItemsPanelを修正しましたが、私は、私はTreeViewItemItemsPanelを変更する必要がありましたたかったものを達成するために:

<controls:TreeView> 
    <controls:TreeView.ItemContainerStyle> 
    <Style TargetType="controls:TreeViewItem"> 
     <Setter Property="ItemsPanel"> 
     <Setter.Value> 
      <ItemsPanelTemplate> 
      <StackPanel Orientation="Horizontal"/> 
      </ItemsPanelTemplate> 
     </Setter.Value> 
     </Setter> 
    </Style> 
    </controls:TreeView.ItemContainerStyle> 
    <controls:TreeViewItem Header="Root" IsExpanded="True"> 
    <controls:TreeViewItem Header="Alfa"/> 
    <controls:TreeViewItem Header="Beta"/> 
    <controls:TreeViewItem Header="Gamma"/> 
    </controls:TreeViewItem> 
</controls:TreeView> 
関連する問題