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);
+ }
}
}