diff --git a/Perspex.Controls/ContentControl.cs b/Perspex.Controls/ContentControl.cs index decaf5158a..d51c85176b 100644 --- a/Perspex.Controls/ContentControl.cs +++ b/Perspex.Controls/ContentControl.cs @@ -79,9 +79,13 @@ namespace Perspex.Controls this.presenterSubscription = null; } - this.presenter = this.GetTemplateChild("presenter"); - this.presenterSubscription = this.presenter.ChildObservable - .Subscribe(x => this.logicalChild.SingleItem = x); + this.presenter = this.FindTemplateChild("presenter"); + + if (this.presenter != null) + { + this.presenterSubscription = this.presenter.ChildObservable + .Subscribe(x => this.logicalChild.SingleItem = x); + } } } } diff --git a/Perspex.Themes.Default/ButtonStyle.cs b/Perspex.Themes.Default/ButtonStyle.cs index 925d9c1ae6..e32d4517ff 100644 --- a/Perspex.Themes.Default/ButtonStyle.cs +++ b/Perspex.Themes.Default/ButtonStyle.cs @@ -78,6 +78,7 @@ namespace Perspex.Themes.Default Padding = new Thickness(3), Content = new ContentPresenter { + Id = "presenter", [~ContentPresenter.ContentProperty] = control[~Button.ContentProperty], [~ContentPresenter.HorizontalAlignmentProperty] = control[~Button.HorizontalContentAlignmentProperty], [~ContentPresenter.VerticalAlignmentProperty] = control[~Button.VerticalContentAlignmentProperty], diff --git a/Perspex.Themes.Default/CheckBoxStyle.cs b/Perspex.Themes.Default/CheckBoxStyle.cs index b55de93331..2ee0b0105c 100644 --- a/Perspex.Themes.Default/CheckBoxStyle.cs +++ b/Perspex.Themes.Default/CheckBoxStyle.cs @@ -83,6 +83,7 @@ namespace Perspex.Themes.Default }, new ContentPresenter { + Id = "presenter", Margin = new Thickness(4, 0, 0, 0), VerticalAlignment = VerticalAlignment.Center, [~ContentPresenter.ContentProperty] = control[~CheckBox.ContentProperty], diff --git a/Perspex.Themes.Default/RadioButtonStyle.cs b/Perspex.Themes.Default/RadioButtonStyle.cs index 1f374df041..ac56bdcd61 100644 --- a/Perspex.Themes.Default/RadioButtonStyle.cs +++ b/Perspex.Themes.Default/RadioButtonStyle.cs @@ -82,6 +82,7 @@ namespace Perspex.Themes.Default }, new ContentPresenter { + Id = "presenter", Margin = new Thickness(4, 0, 0, 0), VerticalAlignment = VerticalAlignment.Center, [~ContentPresenter.ContentProperty] = control[~RadioButton.ContentProperty], diff --git a/Perspex.Themes.Default/TabItemStyle.cs b/Perspex.Themes.Default/TabItemStyle.cs index eac19be1b9..93c38f03a4 100644 --- a/Perspex.Themes.Default/TabItemStyle.cs +++ b/Perspex.Themes.Default/TabItemStyle.cs @@ -41,6 +41,7 @@ namespace Perspex.Themes.Default { return new ContentPresenter { + Id = "presenter", [~ContentPresenter.ContentProperty] = control[~TabItem.HeaderProperty], }; } diff --git a/Perspex.Themes.Default/ToggleButtonStyle.cs b/Perspex.Themes.Default/ToggleButtonStyle.cs index a8bd8d7155..038c934143 100644 --- a/Perspex.Themes.Default/ToggleButtonStyle.cs +++ b/Perspex.Themes.Default/ToggleButtonStyle.cs @@ -93,6 +93,7 @@ namespace Perspex.Themes.Default Padding = new Thickness(3), Content = new ContentPresenter { + Id = "presenter", [~ContentPresenter.ContentProperty] = control[~ToggleButton.ContentProperty], [~ContentPresenter.HorizontalAlignmentProperty] = control[~ToggleButton.HorizontalContentAlignmentProperty], [~ContentPresenter.VerticalAlignmentProperty] = control[~ToggleButton.VerticalContentAlignmentProperty],