/// <summary> /// Turns off auto-synchronize for the specified visualizer. /// </summary> /// <param name="visualizer"></param> private static void EndAutoSynchronize(TagVisualizer visualizer) { Debug.Assert(visualizer != null); Debug.Assert(visualizers.ContainsKey(visualizer), "Unknown visualizer"); Debug.Assert(visualizers[visualizer], "Auto-synchronize was already turned off"); Debug.Assert(autoSynchronizeCount > 0, "Auto-synchronize count is corrupt"); // Make sure that this is the visualizer's thread, to be sure // to get the correct input manager visualizer.VerifyAccess(); // Mark it as being un-tracked --autoSynchronizeCount; visualizers[visualizer] = false; // If it's the last one, stop tracking if (autoSynchronizeCount < 1) { InputManager.Current.HitTestInvalidatedAsync -= OnHitTestInvalidatedAsync; } }
/// <summary> /// Turns on auto-synchronize for the specified visualizer. /// </summary> /// <param name="visualizer"></param> private static void BeginAutoSynchronize(TagVisualizer visualizer) { Debug.Assert(visualizer != null); Debug.Assert(visualizers.ContainsKey(visualizer), "Unknown visualizer"); Debug.Assert(!visualizers[visualizer], "Auto-synchronize was already turned on"); // Make sure that this is the visualizer's thread, to be sure // to get the correct input manager visualizer.VerifyAccess(); // Mark it as being tracked ++autoSynchronizeCount; visualizers[visualizer] = true; // If it's the first one, activate tracking if (autoSynchronizeCount == 1) { InputManager.Current.HitTestInvalidatedAsync += OnHitTestInvalidatedAsync; } }