从UserControl派生的WPF自定义控件不响应鼠标单击

从UserControl派生的WPF自定义控件不响应鼠标单击,wpf,Wpf,我有一个简单的自定义控件,它从UserControl派生而来,具有以下XAML: <UserControl x:Class="EMS.Controls.Dictionary.MapTip" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:slData="cl

我有一个简单的自定义控件,它从UserControl派生而来,具有以下XAML:

<UserControl x:Class="EMS.Controls.Dictionary.MapTip"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:slData="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
       xmlns:infrv="clr-namespace:OCC600.Infrastructure.Interface.Views;assembly=EMS.OCC600.Infrastructure.Interface"
        xmlns:igDP="http://infragistics.com/DataPresenter"       x:Name="root"                   
      > 

    <UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="../Resources/Styles.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </UserControl.Resources>
    <Viewbox x:Name="viewBox" >
        <Border CornerRadius="10" Background="#80000000" BorderBrush="Black">                 
            <Grid Name="contentGrid" Margin="0,20,0,0" >            
                <Grid.RowDefinitions>              
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>                   
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>                  
                </Grid.ColumnDefinitions>              

                <Border Grid.Row="2" Margin="5" Grid.ColumnSpan="2" Visibility="Visible" >                                                  
                    <igDP:XamDataGrid Margin="5"                                      
                                      Name="IdentifyDetailsDataGrid"     
                                      Style="{StaticResource readonlyGrid}"  
                                      ClipToBounds="False">                        
                        <igDP:XamDataGrid.FieldLayoutSettings>
                            <igDP:FieldLayoutSettings                         
                                AutoGenerateFields="True"                                                                                                                                   
                                HighlightAlternateRecords="True"                                
                                FilterUIType="LabelIcons"
                                AllowAddNew="False" 
                                AllowDelete="False"                                                                 
                                SelectionTypeCell="Single"                                
                                SelectionTypeField="Single"                        
                                />
                        </igDP:XamDataGrid.FieldLayoutSettings>
                        <igDP:XamDataGrid.FieldSettings>
                            <igDP:FieldSettings
                                LabelClickAction="SortByOneFieldOnly"                                 
                                AllowEdit="False" 
                                AllowGroupBy="True"                                 
                                CellClickAction="SelectRecord"                            
                                ExpandableFieldRecordHeaderDisplayMode="NeverDisplayHeader"/>
                        </igDP:XamDataGrid.FieldSettings>
                    </igDP:XamDataGrid>                    
                </Border>          
        </Grid>   
        </Border>
    </Viewbox>  
</UserControl>

此Maptip的一个实例添加到JSmith提供的DragCanvas中,如下所示:

此控件由工具栏动态提供,工具栏上的按钮绑定到ViewModel中的命令。当我点击按钮时,什么也没发生。但是,如果将Maptip的基类替换为System.Windows.Primitives.Popup类,则在将此Maptip添加到拖动画布时,按钮会响应鼠标单击事件并执行命令

关于我在这里看到的东西有什么提示吗


TIA.

与自定义DragConvas覆盖PreviewMouseLeftButtonDown有关。改为覆盖OnMouseLeftButtonDown,我的控件现在确实看到鼠标点击。从链接中获得线索:


与自定义DragConvas覆盖PreviewMouseLeftButtonDown有关。改为覆盖OnMouseLeftButtonDown,我的控件现在确实看到鼠标点击。从链接中获得线索: