gpt4 book ai didi

wpf - 列表框数据模板-只能通过单击子元素来选择项目,而不仅仅是单击项目上的任何位置

转载 作者:行者123 更新时间:2023-12-04 05:05:15 25 4
gpt4 key购买 nike

我有一个带有数据模板的项目的列表框。
问题在于,仅通过单击项目上的任意位置来选择项目是行不通的。我必须单击一个特定的子元素才能使其实际工作。

我的物品有一个图像和一个文本块。
如果将鼠标悬停在图像或文本块上,我实际上会看到悬停效果。
如果我将鼠标悬停在项目的“空”空间上,则没有悬停效果(当我单击此处时也没有选择)。

范例图片:http://i33.tinypic.com/wvtleg.png

如果我点击(或将鼠标悬停在)实际的文字或图片上,效果很好,
但是,如果我将鼠标悬停在空白区域(我在其周围画了一条红线:)),列表框将无响应。

如何使列表框悬停/单击以响应单击该项目空间中的任何位置?

为了完整起见,这是我的列表框+模板:

<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>

最佳答案

正如Quartermeister指出的那样-您需要设置网格的背景-但您还需要在资源中设置以下样式,因为ListBoxItems的Horizo​​ntalContentAlignment默认设置为Left。 (仅在ListBox上进行设置是不够的)

<ListBox.Resources>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.Resources>

关于wpf - 列表框数据模板-只能通过单击子元素来选择项目,而不仅仅是单击项目上的任何位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3543813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com