Порядок изображений в ListBox DataTemplate по горизонтали - PullRequest
2 голосов
/ 09 июля 2010

Preview

альтернативный текст http://img39.imageshack.us/img39/5466/howtoorderhorizontal.jpg

На выделенном элементе изображения по-прежнему упорядочены по вертикали, даже если я уже использую <StackPanel Orientation="Horizontal">. Я что-то упустил?

Я не хочу, чтобы изображения имели поведение ListBoxItem (при наведении / клике). Я добавил IsEnabled="False" в список, но непрозрачность изображений снизилась: (У вас есть идеи, как это сделать?

Шаблон данных

   <!-- FacilityTreeView data template -->
    <telerik:HierarchicalDataTemplate x:Key="FecilityTemplate" ItemsSource="{Binding Facilities}">
        <StackPanel Orientation="Horizontal">
            <ListBox ItemsSource="{Binding Icons}" BorderThickness="0" Background="Transparent">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Image Source="{Binding Source}" Margin=" 0,0,2,0" ToolTipService.ToolTip="{Binding Tooltip}" />
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
            <TextBlock Text="{Binding Description}" VerticalAlignment="Center" />
        </StackPanel>
    </telerik:HierarchicalDataTemplate>

Ответы [ 3 ]

3 голосов
/ 09 июля 2010

Используя ItemsPanelTemplate.

<ListBox.ItemTemplate>
   <DataTemplate>
       <Image Source="{Binding Source}" Margin=" 0,0,2,0" ToolTipService.ToolTip="{Binding Tooltip}" />
   </DataTemplate>
</ListBox.ItemTemplate>

<ListBox.ItemsPanelTemplate>
   <StackPanel Orientation="Horizontal"/>
</ListBox.ItemsPanelTemplate>
2 голосов
/ 09 июля 2010

Вам необходимо использовать <StackPanel Orientation="Horizontal"> в качестве шаблона ItemsPanel. Подробнее здесь.

1 голос
/ 20 августа 2014

Я пробовал решение и обнаружил, что оно неполное, ItemsPanelTemplate должно быть внутри <ListBox.ItemsPanel>

<ListBox.ItemsPanel>
    <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal"></StackPanel>
    </ItemsPanelTemplate>
 </ListBox.ItemsPanel>
...