public class FrameCheckBox : CheckBox { public FrameCheckBox() : base() { var uri = new Uri("pack://application:,,,/WpfApp2;component/Theme/CheckBox.xaml"); ResourceDictionary res = new ResourceDictionary { Source = uri }; Application.Current.Resources.MergedDictionaries.Add(res); this.Style = (Style) Application.Current.Resources["DefaultCheckBoxStyle"]; } protected override void OnToggle() { base.OnToggle(); UIhelp.DoEvents(); } } public class UIhelp { public static void DoEvents() { try { var nestedFrame = new DispatcherFrame(); var exitOperation = Dispatcher.CurrentDispatcher.BeginInvoke( DispatcherPriority.Background, new DispatcherOperationCallback(state => { var frame = state as DispatcherFrame; if (frame != null) { frame.Continue = false; } return null; }), nestedFrame); Dispatcher.PushFrame(nestedFrame); if (exitOperation.Status != DispatcherOperationStatus.Completed) { exitOperation.Abort(); } } catch (Exception e) { Console.WriteLine(e.StackTrace); } } }