C# 按住鼠标右键单击与操纵事件冲突
我正在使用操纵事件IsManipulationEnabled、操纵Delta等来移动和缩放图像。这个很好用。我还想使用右键单击创建一个矩形的选择,以定义一个区域拖放,通常的方式,只有在图像上单击鼠标右键。在触摸屏和非触摸Win 7设备上使用鼠标都可以正常工作。尽管如此,当用手指在曲面上单击鼠标右键并按住时,我会看到典型的小正方形出现,但当我在那之后移动手指时,它会移动图像,而不是绘制矩形。看起来操纵事件的优先级高于手指的右键单击。我做错了什么C# 按住鼠标右键单击与操纵事件冲突,c#,wpf,xaml,C#,Wpf,Xaml,我正在使用操纵事件IsManipulationEnabled、操纵Delta等来移动和缩放图像。这个很好用。我还想使用右键单击创建一个矩形的选择,以定义一个区域拖放,通常的方式,只有在图像上单击鼠标右键。在触摸屏和非触摸Win 7设备上使用鼠标都可以正常工作。尽管如此,当用手指在曲面上单击鼠标右键并按住时,我会看到典型的小正方形出现,但当我在那之后移动手指时,它会移动图像,而不是绘制矩形。看起来操纵事件的优先级高于手指的右键单击。我做错了什么 <Grid Name="theGri
<Grid
Name="theGrid"
MouseMove="OnMouseMove"
MouseRightButtonUp="theGrid_MouseRightButtonUp"
MouseRightButtonDown="theGrid_MouseRightButtonDown"
Background="Black">
<Rectangle Name="RectangleContainingBackgroundImage"
IsManipulationEnabled="True"
RenderTransform="{Binding Path=ImageTransform}">
<Rectangle.Fill>
<ImageBrush x:Name="BackgroundImage" Stretch="Uniform"/>
</Rectangle.Fill>
</Rectangle>
在ScreenTouchManager中:
public void Image_ManipulationStarting(object sender, ManipulationStartingEventArgs e)
{
// Ask for manipulations to be reported relative to the grid
e.ManipulationContainer = this.ManipContainer; // MC = constructor param
}
谢谢。我做了一项研究,可能会在这里找到答案: VisualState更改由专用鼠标事件触发:对于 例如,按下按钮时达到按下状态 发生OnMouseLeftButtonDown事件。手指触摸和保持事件为 通常映射为在单击时用鼠标右键单击 视窗解释说,屏幕上没有立即松开手指 这是一个右键单击操作–OnMouseLeftButtonDown事件永远不会发生 激发,并且永远不会达到按下状态
希望这有帮助。我做了一项研究,可能会在这里找到答案: VisualState更改由专用鼠标事件触发:对于 例如,按下按钮时达到按下状态 发生OnMouseLeftButtonDown事件。手指触摸和保持事件为 通常映射为在单击时用鼠标右键单击 视窗解释说,屏幕上没有立即松开手指 这是一个右键单击操作–OnMouseLeftButtonDown事件永远不会发生 激发,并且永远不会达到按下状态
希望这能有所帮助。不太可能:/此处,他们的问题是长时间触摸不会触发leftButton事件,因为长时间触摸=右键单击,因此必须禁用。我的问题,如果有的话,看起来正好相反。我想要右键单击,这看起来是启用的。如果我在子元素上启动右键单击选择(如按钮),它会起作用。我想要左键单击并拖动以移动图像,右键单击并按住并拖动以形成我的选择矩形。他们看起来很像。。。有什么不清楚的吗?不太清楚:/这里,他们的问题是长时间触摸不会触发leftButton事件,因为长时间触摸=右键单击,因此必须禁用。我的问题,如果有的话,看起来正好相反。我想要右键单击,这看起来是启用的。如果我在子元素上启动右键单击选择(如按钮),它会起作用。我想要左键单击并拖动以移动图像,右键单击并按住并拖动以形成我的选择矩形。他们看起来很像。。。有什么不清楚的吗?你找到解决办法了吗?我的窗口中有几个操纵容器,当我在这些容器外按住时,右键单击可以正常工作。对触摸事件与点击事件进行深入了解。未找到解决方案,抱歉:。另外,现在我再也不能访问表面了,所以我不能测试任何东西,但是如果你发现一些可以工作的东西,请发布。很明显,我不能接受这个答案,但我很想知道到底出了什么问题。谢谢。我决定在屏幕的一角使用一个接触点,因为我无法让媒体与操纵事件配合。你有没有找到解决办法?我的窗口中有几个操纵容器,当我在这些容器外按住时,右键单击可以正常工作。对触摸事件与点击事件进行深入了解。未找到解决方案,抱歉:。另外,现在我再也不能访问表面了,所以我不能测试任何东西,但是如果你发现一些可以工作的东西,请发布。很明显,我不能接受这个答案,但我很想知道到底出了什么问题。谢谢。我决定在屏幕的一角使用一个接触点,因为我无法让按住按钮配合操纵事件。
public void Image_ManipulationStarting(object sender, ManipulationStartingEventArgs e)
{
// Ask for manipulations to be reported relative to the grid
e.ManipulationContainer = this.ManipContainer; // MC = constructor param
}