runtime Movable rectangle windows store app

runtime Movable rectangle windows store app

我正在尝试创建将通过鼠标拖动移动的欠帧时间矩形。由于某种原因,代码无法正常工作。

    private void Rectangle_Click(object sender, RoutedEventArgs e)
    {
        var rec = new Rectangle();
        rec.Height = 100;
        rec.Width = 100;
        rec.Fill = new SolidColorBrush(Colors.Violet);

        rec.ManipulationDelta += rec_ManipulationDelta;
        board.Children.Add(rec);

    }

    void rec_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
    {
        dragTranslation.X += e.Delta.Translation.X;
        dragTranslation.Y += e.Delta.Translation.Y;

        dragTranslation = new TranslateTransform();

        this.RenderTransform = this.dragTranslation;
    } 

问题出在分配变换时。尝试

private void Rectangle_Click(object sender, RoutedEventArgs e)
{
    var rec = new Rectangle();
    rec.Height = 100;
    rec.Width = 100;
    rec.Fill = new SolidColorBrush(Colors.Violet);

    rec.ManipulationMode=ManipulationModes.All;
    rec.ManipulationDelta += rec_ManipulationDelta;
    rec.RenderTransform=new TranslateTransform(); // Create new TranslateTransform and assign to the rectangle
    board.Children.Add(rec);

}

void rec_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
    Rectangle recSender = (Rectangle) sender; // Get the Rectangle
    TranslateTransform ttSender = recSender.RenderTransform as TranslateTransform; // Get the Rectangle's RenderTransform (which is a TranslateTransform)

    ttSender.X += e.Delta.Translation.X;
    ttSender.Y += e.Delta.Translation.Y;

}