Windows phone 7 火操作在WP7中手动启动
我在WP7中有一个webscrollview,它最初没有焦点(内容是hittestVisible,因此去掉了ScrollViewer hittestvisibility)。当我将其内容的可见性设置为false时,我可以滚动scrollviewer,但只有在抬起手指并将其放回原处之后。我真的希望焦点转移,然后重新应用焦点,这样我可以在scrollview获得焦点后滑动,而不是等待下一个操纵开始事件触发。 这是我的密码:Windows phone 7 火操作在WP7中手动启动,windows-phone-7,Windows Phone 7,我在WP7中有一个webscrollview,它最初没有焦点(内容是hittestVisible,因此去掉了ScrollViewer hittestvisibility)。当我将其内容的可见性设置为false时,我可以滚动scrollviewer,但只有在抬起手指并将其放回原处之后。我真的希望焦点转移,然后重新应用焦点,这样我可以在scrollview获得焦点后滑动,而不是等待下一个操纵开始事件触发。 这是我的密码: 在C#中: 受保护的覆盖无效TouchFrameDelta(对象发送方,
在C#中:
受保护的覆盖无效TouchFrameDelta(对象发送方,TouchFrameEventArgs e)
{
if(usermaniping==manipationState.manipationstopped)
{
用户操纵=操纵状态。操纵开始;
操纵起始点=e.GetPrimaryTouchPoint(null).Position;
}
//如果我们已经在操作scrollviewer,我们什么也不做
if(用户操纵!=操纵状态。操纵开始)
{
返回;
}
接触点接触点=e.GetPrimaryTouchPoint(空);
float differenceStart=(float)(touchPoint.Position.X-manufactionstartingpoint.X);
如果(数学绝对值(差异开始)>=25)
{
如果(浏览器列表显示)
{
BrowserListIshittesVisible=false;
Focus();
UpdateLayout();
返回;
}
float differenceDelta=(float)(touchPoint.Position.X-manufactionDeltaPoint.X);
if(touchPoint.Action==touchpaction.Up)
{
UserOperating=OperationState.ManiplatingScrollViewCompleted;
操作完成后(不同的ELTA);
}
}
操纵DeltaPoint=接触点位置;
}
TouchFrameDelta是Touch.FrameReported事件。
有人知道为什么这不起作用,以及如何修复它吗?
提前感谢仅为您澄清,
操作启动
(并完成)不能手动触发,因为它们的事件参数是在没有任何公共构造函数的情况下密封的
你要求的不是我认为可能的事。由于您的子项最初不支持任何交互,因此即使在执行另一个事件之前设置了ishitsetvisible
,事件也不会被冒泡到它
我看不出你到底想在这里归档什么,但我不建议在7.0/7.5中使用滚动和WebBrowser,因为控件的功能非常有限。为了澄清,最终目标是拥有一个水平滚动面板,其中的内容是三个用户控件水平堆叠?如果是这样,默认的scrollviewer行为对此是否不起作用(将scrollviewer上的IshittesVisible设置回true)?问题是,当我设置IshittesVisible或任何其他用户输入布局更改时,会在用户释放并更换手指后得到处理。我想这与操纵启动事件有关。当浏览器声明hittestvisibility时,不会触发scrollviewer的操纵开始事件,只有在下一个操纵开始事件时,它才会捕获并处理此事件。所以,即使我水平滚动,更新布局,做各种奇怪的更新,浏览器仍然是hittestvisible的,直到我释放并重新应用Input,浏览器仍然是可见的,有可能提供您用于页面的实际xaml吗?这样我们就可以更准确地再现这个问题。