diff --git a/Tests/Perspex.Controls.UnitTests/WindowTests.cs b/Tests/Perspex.Controls.UnitTests/WindowTests.cs new file mode 100644 index 0000000000..35e996636d --- /dev/null +++ b/Tests/Perspex.Controls.UnitTests/WindowTests.cs @@ -0,0 +1,43 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Controls.UnitTests +{ + using System.Reactive; + using System.Reactive.Subjects; + using Moq; + using Perspex.Controls.Presenters; + using Perspex.Controls.Templates; + using Perspex.Input; + using Perspex.Input.Raw; + using Perspex.Layout; + using Perspex.Platform; + using Perspex.Rendering; + using Perspex.Styling; + using Ploeh.AutoFixture; + using Ploeh.AutoFixture.AutoMoq; + using Splat; + using Xunit; + + public class WindowTests + { + [Fact] + public void Setting_Title_Should_Set_Impl_Title() + { + using (Locator.CurrentMutable.WithResolver()) + { + var windowImpl = new Mock(); + Locator.CurrentMutable.RegisterConstant(windowImpl.Object, typeof(IWindowImpl)); + + var target = new Window(); + + target.Title = "Hello World"; + + windowImpl.Verify(x => x.SetTitle("Hello World")); + } + } + } +} diff --git a/src/Perspex.Controls/Window.cs b/src/Perspex.Controls/Window.cs index 4c8baec900..3f7fde81d1 100644 --- a/src/Perspex.Controls/Window.cs +++ b/src/Perspex.Controls/Window.cs @@ -66,6 +66,7 @@ namespace Perspex.Controls static Window() { BackgroundProperty.OverrideDefaultValue(typeof(Window), Brushes.White); + TitleProperty.Changed.AddClassHandler(x => x.TitleChanged); } /// @@ -234,5 +235,10 @@ namespace Perspex.Controls base.HandleResized(clientSize); } + + private void TitleChanged(PerspexPropertyChangedEventArgs e) + { + this.PlatformImpl.SetTitle((string)e.NewValue); + } } }