2009-09-04 60 views
1

TreeView的默認ItemsPanelStackPanel,其默認方向爲Vertical。我已經改變的取向StackPanelHorizontal更改TreeView ItemsPanel方向不起作用

<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> 

我希望在樹中的下級項目堆棧的水平,而不是垂直的,但我看不出有什麼明顯的變化,當我換方向從VerticalHorizontal和再次回來。 StackPanelOrientation爲什麼不影響ItemsPresenter中物品的佈局?

+0

有沒有可能是你需要retemplate樹視圖項的ItemsPresenter自己? (TreeViewItem.xaml:http://silverlight.codeplex.com/sourcecontrol/changeset/view/25992?projectName=Silverlight#638164) – 2009-09-06 03:53:10

回答

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>