void DirectControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e) { directImage.Visible = (bool)e.NewValue; if (directImage.Visible == true) { OnVisibleChanged_Visible(); if (Parent is FrameworkElement) { (Parent as FrameworkElement).InvalidateMeasure(); } frontBufferCheckTimer.Start(); directImage.RegisterWithService(); } else { OnVisibleChanged_NotVisible(); frontBufferCheckTimer.Stop(); directImage.UnregisterWithService(); } }