private void RefreshTree() { if (!_Interop.IsAlive) { RootLayers.Clear(); } if (!_Interop.IsCacheInvalidated) { return; } _Interop.GetVisualTree().ToList() .MergeInto(RootLayers, (v1, v2) => v1.ID == v2.ID, vvm => vvm.VisualChildren); }
private void _Timer_Tick(object sender, EventArgs e) { RefreshDPs(); RefreshTree(); var allVisuals = RootLayers .SelectMany(l => l.AllChildren) .Concat(RootLayers) .ToList(); //RefreshThisVisual(allVisuals); RefreshHitTestVisuals(allVisuals); PerformanceViewModel.Update(); TimelineViewModel.Update(); UpdateSelectedVisual(); }