Как ограничить цвет фона выделения шириной элемента в WPF ListView? - PullRequest
1 голос
/ 18 ноября 2010

Как сделать так, чтобы цвет выделения (синий здесь) останавливался в конце имени файла, а не дошел до края ListView?

Я поставил оранжевый цвет на элементStackPanel, чтобы показать, что это не потому, что он заполняет всю ширину, о которой я впервые подумал.

<Expander Header="Project">
    <Expander.Resources>
        <DataTemplate x:Key="IconTextItemTemplate">
            <StackPanel Orientation="Horizontal" Background="Orange">
                <Image Source="{Binding icon}"/>
                <TextBlock Text="{Binding text}"/>
            </StackPanel>
        </DataTemplate>
    </Expander.Resources>
    <ListView ItemTemplate="{StaticResource IconTextItemTemplate}"/>
</Expander>

alt text

1 Ответ

3 голосов
/ 18 ноября 2010

Измените ItemContainerStyle на incude HorizontalAlignment = "Left". Таким образом, контейнер элемента будет уменьшаться до размера элемента, а не заполнять весь столбец.

<Style x:Key="LeftAligned">
  <Setter Property="FrameworkElement.HorizontalAlignment" Value="Left" />
</Style>


...

<ListView ItemTemplate="{StaticResource IconTextItemTemplate}"
          ItemContainerStyle="{StaticResource LeftAligned}" /> 
...