例如,下面是一些代碼來填充列表框2個列表框:Silverlight:如何在資源控件中設置控件的樣式?
<ListBox x:Name="LayoutRoot" Width="200" Height="400" Style="{StaticResource ListStyle}" >
<ListBoxItem>
<ListBox>
<ListBoxItem>11</ListBoxItem>
<ListBoxItem>12</ListBoxItem>
</ListBox>
</ListBoxItem>
<ListBoxItem>
<ListBox>
<ListBoxItem>21</ListBoxItem>
<ListBoxItem>22</ListBoxItem>
</ListBox>
</ListBoxItem>
</ListBox>
內部列表框同時出現在垂直列表中顯示其內容。現在,我知道如何讓單個列表框水平顯示其內容,並且我知道如何通過在資源中設置樣式來完成此操作。我無法弄清楚的是如何將其設置爲一次只能應用於外部列表框的資源,而不是每次添加另一個內部列表框(即將其應用於每個內部列表框)。
這是我無數次失敗的嘗試:
<UserControl.Resources>
<Style x:Key="ListStyle" TargetType="ListBox">
<Setter Property="Template">
<Setter.Value>
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
如果我還沒有明確表態,我想看看我的列表框是11,12並排側第一排和21 ,並排排列在第二排。
將有辦法做到這一點使用'ItemTemplate'但是你真的確定要這個接口?你真的需要一個可選列表項目的可選列表嗎?我注意到ListBox經常被用於佈局目的,這很好,但並不總是最好的選擇。明確說明爲什麼要使用ListBox來說明一個簡單的StackPanels和/或具有ScrollViewer的ItemsControl。如果你描述你的目標,而不是你選擇實現我們目前未知的目標,或許這將是一件好事。 – AnthonyWJones 2011-03-02 20:09:10
目前我有4個列表框,其中2個包含顏色,另外2個包含圖像位。所有列表框都從集合中填充。而不是4個列表框,它將更加整潔地在代碼中填充4個列表框,並將它們添加到用戶界面上的1列表框中。 – descf 2011-03-02 20:32:42