1
如何通過拖動/捏住手指而不發生異常行爲來移動/調整SurfaceWindow
本身的尺寸?我有一個表面窗口,檢查IsManipulationEnabled
。在ManipulationStarting
,我有:移動和調整表面窗口本身的尺寸
e.ManipulationContainer = this; <--- source of unpredictable behavior?
e.Handled = true;
在ManipulationDelta
:
this.Left += e.DeltaManipulation.Translation.X;
this.Top += e.DeltaManipulation.Translation.Y;
this.Width *= e.DeltaManipulation.Scale.X; <----zooming works properly
this.Height *= e.DeltaManipulation.Scale.X;
e.Handled = true;
與移動的問題是,它會保持與兩個完全不同的位置跳來跳去,給它一個閃爍的效果。我在控制檯中輸出了一些數據,看起來e.ManipulationOrigin不斷變化。下面的數據是值後,我在最後在屏幕上(只印X值),然後拖動拿着我的手指下降固定爲第二:
Window.Left e.Manipulation.Origin.X e.DeltaManipulation.Translation.X
---------------------------------------------------------------------------
1184 699.616 0
1184 577.147 -122.468
1062 577.147 0
1062 699.264 122.117
1184 699.264 0
1184 576.913 -122.351
and it goes on
您可以從Window.Left
看到它2之間跳躍位置。在我用手指停止移動窗口後,如何才能讓它保持靜止?
我不認爲用多個手指移動將與該正常工作 –