我試圖創建一個選項卡式邊欄的部分,就像WPF中的以下內容。我已經考慮過幾種方法,但有沒有更簡單更優雅的方法來實現它?創建選項卡式邊欄與部分WPF
方法1:列表框
使用ListBox
和結合的SelectedItem到一個值,其右側的控制內容結合。爲了區分標題和部分,我使用了DataTemplate選擇器。
方法2:RADIOBUTTON /複選框/的ToggleButtons
使用單選按鈕,我所選擇的項目綁定到內容控制。但是,由於WPF錯誤,我將不得不使用值轉換器將它們鏈接在一起。
我試圖創建一個選項卡式邊欄的部分,就像WPF中的以下內容。我已經考慮過幾種方法,但有沒有更簡單更優雅的方法來實現它?創建選項卡式邊欄與部分WPF
方法1:列表框
使用ListBox
和結合的SelectedItem到一個值,其右側的控制內容結合。爲了區分標題和部分,我使用了DataTemplate選擇器。
方法2:RADIOBUTTON /複選框/的ToggleButtons
使用單選按鈕,我所選擇的項目綁定到內容控制。但是,由於WPF錯誤,我將不得不使用值轉換器將它們鏈接在一起。
添加多一點的造型到這一點,我認爲這可能工作得很好
<TabControl TabStripPlacement="Left">
<TabControl.Resources>
<Style TargetType="TabItem" x:Key="SideBarSectionStyle">
<Setter Property="IsEnabled" Value="False" />
<Setter Property="FontSize" Value="16" />
<Setter Property="Foreground" Value="LightGreen" />
</Style>
</TabControl.Resources>
<TabItem Header="Section A" Style="{StaticResource SideBarSectionStyle}" />
<TabItem Header="Tab Item 1" IsSelected="True" />
<TabItem Header="Tab Item 2" />
<TabItem Header="Tab Item 3" />
<TabItem Header="Tab Item 4" />
<TabItem Header="Tab Item 5" />
<TabItem Header="Section B" Style="{StaticResource SideBarSectionStyle}" />
<TabItem Header="Tab Item 6" />
<TabItem Header="Tab Item 7" />
<TabItem Header="Tab Item 8" />
<TabItem Header="Tab Item 9" />
</TabControl>
爲什麼我不認爲
這裏有一些更多的想法:
(可能是最理想的)使用樹視圖並模板父母和孩子來隱藏展開按鈕。 This應該幫助你弄清楚如何隱藏它們。
而不是使用1個列表框,使用幾個列表框,每個列表框代表不同的選項類別。如果需要,您可以使用相同的模板或不同的模板。另外,我會將標題保留在列表框中,並將其作爲標籤或位於列表視圖之上的任何內容。您可以調整列表框上的邊距,以獲得像樹視圖那樣的父/子縮進。
如果您的邊欄是分層的,爲什麼不在方法1中使用TreeView而不是ListBox? – publicgk 2011-05-16 08:40:29
你能夠禁用樹視圖的展開/摺疊嗎? – 2011-05-16 09:31:34