ich wirklich kämpfen, um einen einfachen Drag zu bekommen und Probe fallen in Silverlight arbeiten 4.Silverlight DragDrop.DoDragDrop()
Hier ist, was ich habe:
XAML
<UserControl x:Class="TestDragDrop.MainPage" Width="350" Height="200"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid Background="White">
<Rectangle Margin="50,50,200,50" Fill="Orange" MouseLeftButtonDown="r1_MouseLeftButtonDown" />
<Rectangle Margin="200,50,50,50" Fill="Orange" AllowDrop="true" Drop="r2_Drop" />
</Grid>
</UserControl>
Code-Behind
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
private void r1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
DragDrop.DoDragDrop((Rectangle)sender, "test data", DragDropEffects.All, DragDropKeyStates.LeftMouseButton);
}
private void r2_Drop(object sender, System.Windows.DragEventArgs e)
{
MessageBox.Show("Drop: " + e.Data.ToString());
}
}
Das Ereignis DragDrop.DragDropCompleted
löst zwar aus, der Absenderparameter ist jedoch immer null, und die Ereignisargumente helfen mir nicht, mehr über das Ereignis zu erfahren.
Ich habe auch versucht, ein benutzerdefiniertes Steuerelement zu verwenden, das IAcceptDrop ohne Glück implementiert.
Auch wenn ich den Ziehvorgang starte, habe ich keine visuelle Rückmeldung, dass etwas passiert (keine Änderung des Cursors oder irgendetwas). Stimmt irgendetwas nicht?
Alle Beispiele, die ich gefunden habe, verwenden die DragDropTargets. Ist meine einzige Möglichkeit, ein DragDropTarget für den bestimmten Typ von Steuerelementen zu implementieren, den ich verwenden möchte?
Danke für Ihre Antwort. Ich verwende die DragDrop.DoDragDrop() -Methode aus dem Toolkit. Zuvor gab es eine angehängte AllowDrop-Eigenschaft aus dem Toolkit, die aber in SL4 entfernt wurde. Ich nehme an, dass die Framework-Eigenschaft es ersetzt hat? –
Ja, Sie können die AllowDrop-Eigenschaft des Frameworks verwenden. –
Vielen Dank für die Erklärung, die niemand bei MS zu sagen pflegte. –