windows-8 – 如何在WinRT中创建一个tap可移动控件?
发布时间:2020-12-14 02:05:14 所属栏目:Windows 来源:网络整理
导读:我在WinRT中写了一个UserControl,我想用手指移动它. 当我使用钢笔或鼠标移动它时,它仍然在移动,但是当我用手指时它不会移动. 当我用手指时,PointerMoved不是triggert. 这是简单的xaml: UserControl Rectangle PointerPressed="PointerPressed" PointerMoved
我在WinRT中写了一个UserControl,我想用手指移动它.
当我使用钢笔或鼠标移动它时,它仍然在移动,但是当我用手指时它不会移动. 当我用手指时,PointerMoved不是triggert. 这是简单的xaml: <UserControl> <Rectangle PointerPressed="PointerPressed" PointerMoved="PointerMoved"/> </UserControl> 这是代码: private Point position; void PointerPressed(object sender,Windows.UI.Xaml.Input.PointerRoutedEventArgs e) { Rectangle r = sender as Rectangle; var pointerPoint = e.GetCurrentPoint(r); position = pointerPoint.Position; } void PointerMoved(object sender,Windows.UI.Xaml.Input.PointerRoutedEventArgs e) { Rectangle r = sender as Rectangle; var delta = e.GetCurrentPoint(r).Position; r.Margin = new Thickness(r.Margin.Left + delta.X - position.X,r.Margin.Top + delta.Y - position.Y,0); } 我在这里想念什么? 编辑: 解决方法
它比你想象的简单!
<Rectangle Width="100" Height="100" Fill="White" ManipulationMode="TranslateX,TranslateY" ManipulationDelta="Rectangle_ManipulationDelta_1" /> private void Rectangle_ManipulationDelta_1(object sender,ManipulationDeltaRoutedEventArgs e) { var _Rectangle = sender as Windows.UI.Xaml.Shapes.Rectangle; var _Transform = (_Rectangle.RenderTransform as CompositeTransform) ?? (_Rectangle.RenderTransform = new CompositeTransform()) as CompositeTransform; _Transform.TranslateX += e.Delta.Translation.X; _Transform.TranslateY += e.Delta.Translation.Y; } 祝你好运! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读