C# WPF禁用或检测CardView空空间单击?
我正在使用WPF的CardView,添加MouseDoubleClick处理程序来处理项目单击事件,但问题是当我单击空白区域时:卡外的区域,它也会调用该事件,这不是我想要的,所以我想检测卡项目上没有单击事件,或者只是禁用该事件来调用双击处理程序C# WPF禁用或检测CardView空空间单击?,c#,wpf,cardview,C#,Wpf,Cardview,我正在使用WPF的CardView,添加MouseDoubleClick处理程序来处理项目单击事件,但问题是当我单击空白区域时:卡外的区域,它也会调用该事件,这不是我想要的,所以我想检测卡项目上没有单击事件,或者只是禁用该事件来调用双击处理程序 <dxg:CardView ShowTotalSummary="False" ShowGroupPanel="False" SeparatorThickness="0" ShowFilterPanelMode="Never" FilterEdito
<dxg:CardView ShowTotalSummary="False" ShowGroupPanel="False" SeparatorThickness="0" ShowFilterPanelMode="Never" FilterEditorShowOperandTypeIcon="False"
CardLayout="Rows" MaxCardCountInRow="5" ShowCardExpandButton="False" ShowGroupedColumns="False"
MouseDoubleClick="cvPros_MouseDoubleClick">
</dxg:CardView>
我看到了一些类似于我的问题,但它的目标是ListView或TreeView,CardView的某个项没有相应的类,如ListBoxItem、TreeView项:
所以我不能这样使用解决方案,任何人都可以告诉我如何解决这个问题,谢谢 您遇到的问题是,您正在将MouseDoubleClick事件添加到整个CardView中,但因为它有一个边距,也会触发MouseDoubleClick事件 要解决您的问题,您需要将MouseDoubleClick事件应用到您感兴趣的CardView部分。在不访问源代码的情况下,可以这样做的一种方法是删除边距,将MouseDoubleClick事件应用到CardView,然后根据需要添加边距。这建议像这样删除边距
<CardView MouseDoubleClick="MyMouseDoubleClick" Margin="10">
<UserControl>
<Grid Margin="10" >
<CardView MouseDoubleClick="MyMouseDoubleClick" Margin="10">
</Grid>
</UserControl>
<MyCardView .../>
重新定义CardTemplate
<dxg:CardView.CardTemplate>
<DataTemplate>
<Border Margin="-11">
<TextBlock Background="Red" Height="50" Width="50"/>
</Border>
</DataTemplate>
</dxg:CardView.CardTemplate>
然后您可以像这样使用您的CardView
<CardView MouseDoubleClick="MyMouseDoubleClick" Margin="10">
<UserControl>
<Grid Margin="10" >
<CardView MouseDoubleClick="MyMouseDoubleClick" Margin="10">
</Grid>
</UserControl>
<MyCardView .../>
那么你可以像这样使用它
<CardView MouseDoubleClick="MyMouseDoubleClick" Margin="10">
<UserControl>
<Grid Margin="10" >
<CardView MouseDoubleClick="MyMouseDoubleClick" Margin="10">
</Grid>
</UserControl>
<MyCardView .../>
我认为问题不仅仅是边缘的错误。考虑这种情况:第一行有4个卡项,第二行有1个卡项,如果我们单击第二行,甚至不点击只有一个卡项,它也将调用双击,这个问题不能由您的解决方案解决。因此,我想知道是否有一种解决方案只能在我单击卡片视图项时执行单击事件,而不能执行边距,也不能执行任何其他空白。