XAML / C#Windows 8 app ...
我在XAML / C#中使用了MouseDragElementBehavior来在屏幕上拖动元素。
不幸的是,在为Windows 8开发应用程序时,交互程序集并不起作用。
如何在Windows 8 XAML应用程序中拖动元素?
感谢。
编辑:我在这里找到了一个示例:http://code.msdn.microsoft.com/windowsapps/Input-3dff271b/sourcecode?fileId=44758&pathId=962809525
只需复制代码即可拖动我的元素。如果需要帮助,有些问题会更新。
答案 0 :(得分:2)
您需要处理要拖动的元素上的操作事件。另外,在元素上将ManipulationMode设置为None以外的值。
ManipulationStarted
初始化拖拽代码ManipulationDelta
,检查e.Delta
值,并使用RenderTransform
偏移元素,或者如果在Canvas
中,请使用画布坐标。希望有所帮助。
答案 1 :(得分:1)
这是一个基于ColinE答案的过于简化的例子。
考虑一个有椭圆的画布:
<Canvas Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<Ellipse Fill="Red"
Canvas.Left="100"
Canvas.Top="100"
Width="100"
Height="100"
ManipulationMode="All"
ManipulationDelta="Ellipse_ManipulationDelta_1"/>
</Canvas>
现在在后面的代码中,你处理ManipulationDelta:
private void Ellipse_ManipulationDelta_1(object sender, ManipulationDeltaRoutedEventArgs e)
{
Ellipse myEllipse = (Ellipse)sender;
Canvas.SetLeft(myEllipse, Canvas.GetLeft(myEllipse) + e.Delta.Translation.X);
Canvas.SetTop(myEllipse, Canvas.GetTop(myEllipse) + e.Delta.Translation.Y);
}