using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Media; namespace Txgy.EWS.Client.Common.Helpers { public class VisualHost : Canvas { public List visuals = new List(); //获取Visual的个数 protected override int VisualChildrenCount { get { return visuals.Count; } } //获取Visual protected override Visual GetVisualChild(int index) { return visuals[index]; } //添加Visual public void AddVisual(Visual visual) { visuals.Add(visual); Application.Current.Dispatcher.Invoke(() => base.AddVisualChild(visual)); Application.Current.Dispatcher.Invoke(() => base.AddLogicalChild(visual)); } //删除Visual public void RemoveVisual(Visual visual) { visuals.Remove(visual); Application.Current.Dispatcher.Invoke(()=>base.RemoveVisualChild(visual)); Application.Current.Dispatcher.Invoke(() => base.RemoveLogicalChild(visual)); } //命中测试 public DrawingVisual GetVisual(Point point) { HitTestResult hitResult = VisualTreeHelper.HitTest(this, point); return hitResult.VisualHit as DrawingVisual; } } }