0

我有一个简单的 Metro 风格应用程序,我想将 16 张图像拖放到另一个图像上。另一个图像应将其源设置为拖动图像的源。

这是拖动方法:

    private void ManipulationDelta_Pic(object sender, ManipulationDeltaRoutedEventArgs e)
    {
        Image img = e.OriginalSource as Image;
        if (img != null)
        {
            var ct = img.RenderTransform as CompositeTransform;
            if (ct != null)
            {
                ct.TranslateX += e.Delta.Translation.X;
                ct.TranslateY += e.Delta.Translation.Y;
            }
        }
    }

这是带有图像的 xaml,它应该是 drop darget(想象其中 16 个):

        </Grid>

    <Grid Margin="377,0,371,23" Background="Cornsilk" Grid.Row="1" Height="600" Width="600" AllowDrop="True">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="150" />
            <ColumnDefinition Width="150"/>
            <ColumnDefinition Width="150"/>
            <ColumnDefinition Width="150"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="150"/>
            <RowDefinition Height="150"/>
            <RowDefinition Height="150"/>
            <RowDefinition Height="150"/>
        </Grid.RowDefinitions>

        <Border x:Name="z1" BorderBrush="Black" BorderThickness="3" Grid.Row="0" Grid.Column="0" Background="Beige"  AllowDrop="true">
            <Image  x:Name="puzz1" HorizontalAlignment="Left" Height="150" VerticalAlignment="Top" Width="150" Source="Assets/win8001.jpg" AllowDrop="True"/>
        </Border>

    </Grid>

并且有应该丢弃的图像(也有 16 个)。

<Image x:Name="sidePics1"  Width="150" Height="150" ManipulationMode="All" Margin="1311,507,-95,-29" Grid.Row="1" ManipulationDelta="ManipulationDelta_Pic" Drop="Drop_Pic">
            <Image.RenderTransform>
                <CompositeTransform />
            </Image.RenderTransform>
         </Image>

我不知道如何解决这个问题,我是 Metro App 编程的新手。我知道它应该与 DragOver、DragEnter、DragLeave 和 Drop Event 相关,但我不知道该怎么做。

我需要帮助,谢谢。

4

1 回答 1

1

几年前,我写了一篇关于在 Silverlight 中进行拖放的文章。这应该会有所帮助。

http://www.jeffblankenburg.com/2009/07/05/day-5-silverlight-drag-and-drop/

于 2012-08-26T23:05:23.720 回答