2009-06-01 92 views
5

所以我有一個StackPanel,我用作一個ContentControl。我有一個地方,我希望根據綁定的數據生成按鈕,而且這一切都很好,但我希望按鈕水平放置,而不是像現在發生的那樣垂直放置。下面是截圖:使用StackPanel作爲ContentControl(WPF)

alt text

這裏是從我的ContentTemplate描述代碼:

<StackPanel Name="wpReleaseButtons" Orientation="Horizontal" Grid.Row="2"> 
    <ItemsControl IsTabStop="False" ItemsSource="{Binding Path=BranchCommands}"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Button Tag="{Binding}" Padding="3"> 
        <TextBlock Text="{Binding Path=DisplayValue}" /> 
       </Button> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</StackPanel> 

不知道我在做什麼錯在這裏。任何信息,將不勝感激。謝謝!

回答

9

我會說,它看起來像ItemsControl就是垂直顯示的按鈕。如果你想在ItemsControl的按鈕是水平的,那麼你需要的StackPanel是在ItemsControlItemsPanelTemplate,而不是反過來就像你在你的代碼是什麼:

<ItemsControl IsTabStop="False" ItemsSource="{Binding Path=BranchCommands}"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Button Tag="{Binding}" Padding="3"> 
       <TextBlock Text="{Binding Path=DisplayValue}" /> 
      </Button> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel Orientation="Horizontal"/> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
</ItemsControl> 

我可能會稍微錯了在ItemsControl.ItemsPanel位,因爲我還沒有得到任何數據與...

編輯來測試它:除了衣基準,有通過Dr WPF一些好東西。

+0

這樣做了!感謝您的回答,並且我還爲Bea的網站添加了書籤。感謝大家!這開始讓我感到不安,哈哈。 – 2009-06-01 14:51:17

3

我看不到你的形象(它已被我公司的防火牆),但在這裏我去反正...

你「方向=‘橫向’」可能是因爲它的工作應:它只包含一個子元素,一個ItemsControl。相反,請嘗試爲您的ItemsControl製作一個ControlTemplate,其中ControlTemplate包含一個Orientation =「Horizo​​ntal」的StackPanel。

希望這會有所幫助!

編輯:

再次

,衣來通過一個答案/例子!

http://bea.stollnitz.com/blog/?p=10

+0

+1爲Bea參考。 – 2009-06-01 14:18:54