列表框高亮项
Listbox highlight item
我想知道为什么我可以 select 列表框中的项目而不是文本中的项目。所以我可以 select 白色的项目 space 但是当我点击文本或图像时它没有突出显示,我想知道为什么?
<Popup IsOpen="{Binding IsChecked, ElementName=toggleButtonAdd}" x:Name="Popup" StaysOpen="False" Placement="Right">
<Border BorderBrush="Black" BorderThickness="1" Background="Gainsboro">
<StackPanel Margin="5,10,5,5">
<TextBlock Text="Add Existing Property:"></TextBlock>
<ListBox BorderBrush="Black" BorderThickness="1" Background="White" Margin="5" Padding="4" Width="130"
ItemsSource="{Binding Path=AvailableProperties}" ><!--SelectionChanged="Selector_OnSelectionChanged">-->
<ListBox.ItemTemplate>
<DataTemplate>
<ListBoxItem Margin="2">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Icon, Converter={StaticResource ImageToSourceConverter}}" Width="12" Height="12" Margin="3" VerticalAlignment="Center"/>
<TextBlock Text="{Binding Name}" VerticalAlignment="Center"></TextBlock>
</StackPanel>
</ListBoxItem>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</Border>
</Popup>
首先,您不需要将ListBoxItem
添加到DataTemplate
如果您从 DataTemplate
中删除 ListBoxItem
,选择将按预期进行。
我真的在这里猜测,但我认为它与 ListBox 本身以及它找到其子项的方式有关。它肯定与 ListBoxItem 是一个 ContentControl 这一事实无关,因为将您的示例更改为 ContentControl 将解决一个问题
我想知道为什么我可以 select 列表框中的项目而不是文本中的项目。所以我可以 select 白色的项目 space 但是当我点击文本或图像时它没有突出显示,我想知道为什么?
<Popup IsOpen="{Binding IsChecked, ElementName=toggleButtonAdd}" x:Name="Popup" StaysOpen="False" Placement="Right">
<Border BorderBrush="Black" BorderThickness="1" Background="Gainsboro">
<StackPanel Margin="5,10,5,5">
<TextBlock Text="Add Existing Property:"></TextBlock>
<ListBox BorderBrush="Black" BorderThickness="1" Background="White" Margin="5" Padding="4" Width="130"
ItemsSource="{Binding Path=AvailableProperties}" ><!--SelectionChanged="Selector_OnSelectionChanged">-->
<ListBox.ItemTemplate>
<DataTemplate>
<ListBoxItem Margin="2">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Icon, Converter={StaticResource ImageToSourceConverter}}" Width="12" Height="12" Margin="3" VerticalAlignment="Center"/>
<TextBlock Text="{Binding Name}" VerticalAlignment="Center"></TextBlock>
</StackPanel>
</ListBoxItem>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</Border>
</Popup>
首先,您不需要将ListBoxItem
添加到DataTemplate
如果您从 DataTemplate
中删除 ListBoxItem
,选择将按预期进行。
我真的在这里猜测,但我认为它与 ListBox 本身以及它找到其子项的方式有关。它肯定与 ListBoxItem 是一个 ContentControl 这一事实无关,因为将您的示例更改为 ContentControl 将解决一个问题