Tôi đang thực sự gặp khó khăn để có được một đơn giản kéo và thả mẫu làm việc trong Silverlight 4.Silverlight DragDrop.DoDragDrop()
Dưới đây là những gì tôi có:
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());
}
}
Sự kiện DragDrop.DragDropCompleted
không kích hoạt, tuy nhiên thông số người gửi luôn là rỗng và sự kiện args không thực sự giúp tôi tìm hiểu thêm về sự kiện.
Tôi cũng đã cố gắng sử dụng kiểm soát tùy chỉnh triển khai IAcceptDrop mà không có may mắn.
Ngoài ra, khi tôi bắt đầu thao tác kéo, tôi không có phản hồi trực quan về điều gì đó đang xảy ra (không có thay đổi về con trỏ hoặc bất kỳ thứ gì). Có điều gì sai không?
Tất cả các mẫu tôi đã tìm thấy đều sử dụng DragDropTargets. Là khu nghỉ mát duy nhất của tôi để thực hiện một DragDropTarget cho loại điều khiển cụ thể tôi muốn sử dụng?
Cảm ơn câu trả lời của bạn. Tôi đang sử dụng phương thức DragDrop.DoDragDrop() từ Bộ công cụ. Trước đây có một thuộc tính AllowDrop đính kèm từ Bộ công cụ, nhưng điều này đã bị loại bỏ trong SL4. Tôi lấy nó là thuộc tính framework đã thay thế nó? –
Có, bạn có thể sử dụng thuộc tính AllowDrop của khung công tác. –
Cảm ơn bạn đã giải thích những gì không có ai tại MS đã làm phiền để nói. –