Альтернативный цвет строки для оберточной панели

Я пытаюсь получить эффект альтернативного цвета строки в Listbox/wrappanel. Однако, поскольку ориентация горизонтальная, альтернативные столбцы получают альтернативные цвета. Я хочу, чтобы элементы были перечислены сбоку, а затем обернуты. Как я могу установить альтернативный цвет в строках на основе этого.

<ListBox ItemsSource="{Binding MySource}"  ItemContainerStyle="{StaticResource alternatingListItemStyle}" AlternationCount="2">
 <ListBox.ItemsPanel>
     <ItemsPanelTemplate>
         <WrapPanel Orientation="Horizontal" MaxWidth="300"/>
     </ItemsPanelTemplate>
 </ListBox.ItemsPanel>
 <ListBox.ItemTemplate>
     <DataTemplate>
         <CheckBox Content="{Binding MyCaption}"/>
     </DataTemplate>
 </ListBox.ItemTemplate>


person Abraham Alex    schedule 12.08.2012    source источник


Ответы (1)


Возможной причиной чередования цветов столбцов является «MaxWidth». Поскольку MaxWidth для WrapPanel равен 300, можно хранить более одного элемента. Если вы уменьшите максимальную ширину, она может содержать один элемент. Надеюсь это поможет.

(Можете ли вы объяснить, почему вы используете панель переноса в ItemsPanelTemplate? Я не уверен, как вы хотите, чтобы вывод выглядел.)

person Vanathi Palanisamy    schedule 12.08.2012
comment
Спасибо за ваш ответ. Я установил MaxWidth, чтобы я мог заполнить элементы сбоку, прежде чем он заполнит следующую строку. Например, если у меня есть элементы A, B, C, D, E, F и предполагая, что только 3 могут поместиться в строке, я хочу, чтобы A, B, C были в строке один в одном цвете и D, E, F в следующем строку с другим цветом фона. Если была третья строка, она будет повторять цвет первой строки. - person Abraham Alex; 12.08.2012