这不允许发射leftMouseDown

我试图在列表框中实现拖放功能(在列表框中)。 对于拖动我使用拇指控制(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>

拖放工作正常,但拇指不允许选择项目。 检查后,我发现mousedown事件没有发射。 有没有办法使通常的方式选择项目?


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

正如我所见,你有两种选择:

  • 从拇指的代码中,搜索直到找到列表框项目,然后将它的IsSelected属性设置为true。

  • 废用拇指和创造Behavior与拖动交易,但不处理鼠标事件(即不设置e.Handled=true; -这将保留列表框的功能。

  • 选项1可能更快,但我强烈考虑选择2 - 更少干涉核心控制功能=更好。

    链接地址: http://www.djcxy.com/p/59901.html

    上一篇: Thum not allowing to fire leftMouseDown

    下一篇: How do I find out where the focus is going in my WPF application?