我有一个简单的地铁风格的应用程序,我想拖动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的东西,但我不知道该如何处理。
我需要帮助,谢谢。
答案 0 :(得分:1)
我写了一篇关于做拖拉的文章。几年前在Silverlight上掉线了。这应该有所帮助。
http://www.jeffblankenburg.com/2009/07/05/day-5-silverlight-drag-and-drop/