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>

拖放工作正常,但拇指不允许选择该项目。检查后,我发现鼠标关闭事件没有触发。有没有办法以通常的方式启用选择项目?

Thum不允许向左开火鼠标向下

Thumb总是吃掉鼠标点击,就像按钮一样。

在我看来,您有两种选择:

  1. 从拇指的代码中,向上搜索,直到找到列表框项,然后将其IsSelected属性设置为 true。

  2. 废弃拇指并创建一个处理拖动但不处理鼠标事件的Behavior(即不设置e.Handled=true;) - 这将保留列表框功能。

选项

1 可能更快,但我强烈建议使用选项 2 - 减少对核心控件功能的干预 = 更好。