gpt4 book ai didi

windows-8 - 如何在 WinRT 中创建点击可移动控件?

转载 作者:行者123 更新时间:2023-12-04 23:23:34 25 4
gpt4 key购买 nike

我在 WinRT 中编写了一个 UserControl,我想让它用手指移动。
当我使用笔或鼠标移动它时,它仍在移动,但当我使用手指时它不会移动。
当我使用手指时,不会触发 PointerMoved。

这是简单的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, 0);
}

我在这里想念什么?

编辑:
我正在使用 Windows 8.1 和 VisualStudio 2013。
也许这是一个新功能^^

最佳答案

它比你想象的要简单!

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

祝你好运!

关于windows-8 - 如何在 WinRT 中创建点击可移动控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17794614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com