Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按住鼠标右键单击与操纵事件冲突_C#_Wpf_Xaml - Fatal编程技术网

C# 按住鼠标右键单击与操纵事件冲突

C# 按住鼠标右键单击与操纵事件冲突,c#,wpf,xaml,C#,Wpf,Xaml,我正在使用操纵事件IsManipulationEnabled、操纵Delta等来移动和缩放图像。这个很好用。我还想使用右键单击创建一个矩形的选择,以定义一个区域拖放,通常的方式,只有在图像上单击鼠标右键。在触摸屏和非触摸Win 7设备上使用鼠标都可以正常工作。尽管如此,当用手指在曲面上单击鼠标右键并按住时,我会看到典型的小正方形出现,但当我在那之后移动手指时,它会移动图像,而不是绘制矩形。看起来操纵事件的优先级高于手指的右键单击。我做错了什么 <Grid Name="theGri

我正在使用操纵事件IsManipulationEnabled、操纵Delta等来移动和缩放图像。这个很好用。我还想使用右键单击创建一个矩形的选择,以定义一个区域拖放,通常的方式,只有在图像上单击鼠标右键。在触摸屏和非触摸Win 7设备上使用鼠标都可以正常工作。尽管如此,当用手指在曲面上单击鼠标右键并按住时,我会看到典型的小正方形出现,但当我在那之后移动手指时,它会移动图像,而不是绘制矩形。看起来操纵事件的优先级高于手指的右键单击。我做错了什么

 <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
}