我有一个带有项目数据模板的列表框。
问题在于,仅通过单击项目上的任意位置无法选择项目;必须选择项目。我必须单击特定的子元素才能使其实际工作。
我的项目有一个图像和一个文本块。
如果我将鼠标悬停在图像或文本块上,我实际上会看到悬停效果。
如果我将鼠标悬停在该项目的任何“空白”空间上,则没有悬停效果(并且当我单击那里时没有选择)。
示例图片:http://i33.tinypic.com/wvtleg.png http://i33.tinypic.com/wvtleg.png
如果我单击(或将鼠标悬停在)实际文本或图像上,它就可以正常工作,
但如果我将鼠标悬停在空白区域(我在其周围画了一条红线:)),列表框不会响应。
如何让列表框悬停/单击以响应单击anywhere在项目的空间中?
为了完整起见,这是我的列表框+模板:
<ListBox Grid.Row="1"
ItemsSource="{Binding Path=CreatableOutputWindows, Mode=OneWay}" Height="Auto"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Margin="8,8,8,8"
Name="listBox1" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="84"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Margin="5" BorderBrush="Black" BorderThickness="2">
<Image Source="{Binding Path=Image}" Stretch="Fill" Width="80" Height="50" />
</Border>
<StackPanel Grid.Column="1" Margin="5">
<StackPanel Orientation="Horizontal" TextBlock.FontWeight="Bold">
<TextBlock Text="{Binding Path=Name}" />
</StackPanel>
</StackPanel>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
听起来您的 ListBoxItem 没有响应命中测试 http://msdn.microsoft.com/en-us/library/ms752097.aspx。尝试将网格的背景设置为透明:
<Grid Background="Transparent">
默认值为 null,这将使该元素对命中测试不可见。将背景设置为透明不会影响显示,但会允许元素被击中。 ListBoxItem 的默认样式将具有透明背景,但您可能已重新设置它的样式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)