@@ -470,11 +470,16 @@ public ContentDialog()
470470 {
471471 SetValue ( TemplateButtonCommandProperty , new RelayCommand < ContentDialogButton > ( OnButtonClick ) ) ;
472472
473- Loaded += static ( sender , _ ) =>
473+ // Avoid registering runtime code that triggers designer behavior or throws exceptions
474+ // at design time (to reduce the possibility of designer crashes/rendering failures).
475+ if ( ! Wpf . Ui . Designer . DesignerHelper . IsInDesignMode )
474476 {
475- var self = ( ContentDialog ) sender ;
476- self . OnLoaded ( ) ;
477- } ;
477+ Loaded += static ( sender , _ ) =>
478+ {
479+ var self = ( ContentDialog ) sender ;
480+ self . OnLoaded ( ) ;
481+ } ;
482+ }
478483 }
479484
480485 /// <summary>
@@ -492,11 +497,16 @@ public ContentDialog(ContentPresenter? dialogHost)
492497
493498 SetValue ( TemplateButtonCommandProperty , new RelayCommand < ContentDialogButton > ( OnButtonClick ) ) ;
494499
495- Loaded += static ( sender , _ ) =>
500+ // Avoid registering runtime code that triggers designer behavior or throws exceptions
501+ // at design time (to reduce the possibility of designer crashes/rendering failures).
502+ if ( ! Wpf . Ui . Designer . DesignerHelper . IsInDesignMode )
496503 {
497- var self = ( ContentDialog ) sender ;
498- self . OnLoaded ( ) ;
499- } ;
504+ Loaded += static ( sender , _ ) =>
505+ {
506+ var self = ( ContentDialog ) sender ;
507+ self . OnLoaded ( ) ;
508+ } ;
509+ }
500510 }
501511
502512 /// <summary>
@@ -601,6 +611,12 @@ protected virtual void OnButtonClick(ContentDialogButton button)
601611
602612 protected override Size MeasureOverride ( Size availableSize )
603613 {
614+ // Avoid throwing exceptions when visual child elements cannot be obtained (designer or template not applied).
615+ if ( VisualChildrenCount == 0 )
616+ {
617+ return base . MeasureOverride ( availableSize ) ;
618+ }
619+
604620 var rootElement = ( UIElement ) GetVisualChild ( 0 ) ! ;
605621
606622 rootElement . Measure ( availableSize ) ;
@@ -622,6 +638,7 @@ protected override Size MeasureOverride(Size availableSize)
622638 /// </summary>
623639 protected virtual void OnLoaded ( )
624640 {
641+ // Focus is only needed at runtime.
625642 _ = Focus ( ) ;
626643
627644 RaiseEvent ( new RoutedEventArgs ( OpenedEvent ) ) ;
0 commit comments