當在用戶拖動某項瀏覽器窗口,並釋放按鈕之外appliaction之外,並返回給應用程序後拖曳指標仍清晰可見,整個操作不取消使用TreeViewDragDropTarget。有關此問題的任何解決方法?TreeViewDragDropTarget和Silverlight邊界問題
1
A
回答
1
只是發表我的回答對Silverlight的論壇有: 聯播ItemDragStarting事件下面的事件處理程序。
private void DragDropTarget_ItemDragStarting(object sender, ItemDragEventArgs e)
{
Application.Current.RootVisual.CaptureMouse();
Application.Current.RootVisual.MouseLeftButtonUp += (s, ee) =>
{
this.ReleaseMouseCapture();
Point p = ee.GetPosition(Application.Current.RootVisual);
if (VisualTreeHelper.FindElementsInHostCoordinates(p, Application.Current.RootVisual).Count() == 0)
{
// If mouse is released outside of the Silverlight control, cancel the drag
e.Cancel = true;
e.Handled = true;
}
};
}
0
我不確定lambda表達式是否解決了自動取消註冊鼠標句柄的情況。
我重寫了一下這個解決方案。
protected override void OnItemDragStarting(ItemDragEventArgs eventArgs)
{
Application.Current.RootVisual.CaptureMouse();
MouseButtonEventHandler handlerMouseUp = null;
handlerMouseUp = (s, ee) =>
{
this.ReleaseMouseCapture();
if (handlerMouseUp != null)
{
Application.Current.RootVisual.MouseLeftButtonUp -= handlerMouseUp;
}
Point p = ee.GetPosition(Application.Current.RootVisual);
if (VisualTreeHelper.FindElementsInHostCoordinates(p, Application.Current.RootVisual).Count() == 0)
{
// If mouse is released outside of the Silverlight control, cancel the drag
eventArgs.Cancel = true;
eventArgs.Handled = true;
}
};
Application.Current.RootVisual.MouseLeftButtonUp += handlerMouseUp;
if (!eventArgs.Handled)
base.OnItemDragStarting(eventArgs);
}
在我的情況下,我還擴展了TreeViewDragDropTarget類。希望這對有人會有希望。
相關問題
- 1. GROUPBOX邊界問題
- 2. OpenACC邊界問題
- 3. Pygame邊界問題
- 4. IE7邊界問題
- 5. CSS邊界問題
- 6. Silverlight窗口邊界
- 7. CSS的float和邊界問題
- 8. 錶行和colgroup邊界問題
- 9. iOS:UIPanGesture和框架/邊界問題
- 10. 環路邊界和性能問題
- 11. CSS和邊界半徑問題
- 12. XAML中邊界問題
- 13. 問題與邊界半徑
- 14. WPF窗口邊界問題
- 15. 邊界重疊問題
- 16. jquery fadeTo邊界問題
- 17. FaceDetection邊界框問題
- 18. 圖像邊界問題
- 19. 邊界問題的鉻
- 20. 框架集邊界問題
- 21. 邊界問題(安卓)
- 22. 的UITableViewCell/UISegmentedControl邊界問題
- 23. CSS「2D」邊界問題
- 24. 無邊界形式問題
- 25. 邊界的z-index問題
- 26. 自NSTextView邊界問題
- 27. 邊界填寫問題
- 28. 表邊界問題停止
- 29. UL CSS問題與邊界
- 30. 邊界半徑問題CSS