Thum不允许向左开火鼠标向下
本文关键字:鼠标 开火 不允许 Thum | 更新日期: 2023-09-27 18:36:00
我正在尝试在列表框中实现拖放功能(在列表框中)。对于拖动,我正在使用拇指控件(Mythumb是从拇指继承的类)
所以我已将项目面板设置为Canves并将列表框项目的样式设置为以下
<Style TargetType="{x:Type ListBoxItem}"> <Setter Property="Width" Value="150" /> <Setter Property="Height" Value="150" /> <Setter Property="Margin" Value="5,2" /> <Setter Property="Padding" Value="3" /> <Setter Property="dcc:OutputConfigurationPanel.Left" Value="{Binding Left}"></Setter> <Setter Property="dcc:OutputConfigurationPanel.Top" Value="{Binding Top}"></Setter> <Setter Property="IsSelected" Value="{Binding IsSelected}"></Setter> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ListBoxItem}"> <Grid DockPanel.Dock="Bottom" > <Grid> <Border BorderBrush="Black" Background="Black"> <ContentPresenter x:Name="ContentHost" Margin="{TemplateBinding Padding}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" /> </Border> <MythumbTemplate="{StaticResource MoveThumbTemplate}" Cursor="Hand" /> </Grid> </Grid> <ControlTemplate.Triggers> <Trigger Property="Selector.IsSelected" Value="True"> <Setter Property="Background" Value="#FF233B00" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style>
拖放工作正常,但拇指不允许选择该项目。检查后,我发现鼠标关闭事件没有触发。有没有办法以通常的方式启用选择项目?
Thumb
总是吃掉鼠标点击,就像按钮一样。
在我看来,您有两种选择:
-
从拇指的代码中,向上搜索,直到找到列表框项,然后将其
IsSelected
属性设置为 true。 -
废弃拇指并创建一个处理拖动但不处理鼠标事件的
Behavior
(即不设置e.Handled=true;
) - 这将保留列表框功能。
1 可能更快,但我强烈建议使用选项 2 - 减少对核心控件功能的干预 = 更好。