瀏覽代碼

Removed this.

Nikita Tsukanov 10 年之前
父節點
當前提交
01e2c90bc5
共有 100 個文件被更改,包括 1056 次插入1068 次删除
  1. 1 1
      Tests/Perspex.Markup.Xaml.UnitTests/SampleModel/LogInViewModel.cs
  2. 4 4
      Tests/Perspex.Markup.Xaml.UnitTests/SampleModel/MainWindowViewModel.cs
  3. 1 1
      Tests/Perspex.Markup.Xaml.UnitTests/SampleModel/UserRepositoriesViewModel.cs
  4. 2 2
      Tests/Perspex.Markup.Xaml.UnitTests/SamplePerspexObject.cs
  5. 3 3
      samples/TestApplication/App.cs
  6. 8 8
      samples/TestApplication/Program.cs
  7. 3 3
      samples/XamlTestApplication/App.cs
  8. 1 1
      samples/XamlTestApplication/Program.cs
  9. 1 1
      samples/XamlTestApplication/Views/MainWindow.cs
  10. 1 1
      src/Gtk/Perspex.Cairo/CairoPlatform.cs
  11. 14 16
      src/Gtk/Perspex.Cairo/Media/DrawingContext.cs
  12. 11 13
      src/Gtk/Perspex.Cairo/Media/FormattedTextImpl.cs
  13. 5 7
      src/Gtk/Perspex.Cairo/Media/Imaging/BitmapImpl.cs
  14. 2 2
      src/Gtk/Perspex.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs
  15. 1 1
      src/Gtk/Perspex.Cairo/Media/StreamGeometryContextImpl.cs
  16. 5 5
      src/Gtk/Perspex.Cairo/Media/StreamGeometryImpl.cs
  17. 1 1
      src/Gtk/Perspex.Gtk/ClipboardImpl.cs
  18. 1 1
      src/Gtk/Perspex.Gtk/CursorFactory.cs
  19. 4 4
      src/Gtk/Perspex.Gtk/Input/GtkKeyboardDevice.cs
  20. 1 1
      src/Gtk/Perspex.Gtk/PopupImpl.cs
  21. 27 27
      src/Gtk/Perspex.Gtk/WindowImpl.cs
  22. 4 4
      src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs
  23. 1 1
      src/Markup/Perspex.Markup.Xaml/Context/PerspexTypeRepository.cs
  24. 9 9
      src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMemberValuePlugin.cs
  25. 1 1
      src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlType.cs
  26. 7 7
      src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/ObservablePropertyBranch.cs
  27. 6 6
      src/Markup/Perspex.Markup.Xaml/DataBinding/DataContextChangeSynchronizer.cs
  28. 4 4
      src/Markup/Perspex.Markup.Xaml/DataBinding/SourceBindingEndpoint.cs
  29. 2 2
      src/Markup/Perspex.Markup.Xaml/DataBinding/TargetBindingEndpoint.cs
  30. 5 5
      src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBinding.cs
  31. 3 3
      src/Markup/Perspex.Markup.Xaml/MarkupExtensions/BindingExtension.cs
  32. 4 4
      src/Markup/Perspex.Markup.Xaml/MarkupExtensions/TypeExtension.cs
  33. 2 2
      src/Markup/Perspex.Markup.Xaml/PerspexXamlLoader.cs
  34. 5 5
      src/Markup/Perspex.Markup.Xaml/Templates/XamlDataTemplate.cs
  35. 2 6
      src/Perspex.Animation/Animate.cs
  36. 1 1
      src/Perspex.Animation/LinearDoubleEasing.cs
  37. 3 3
      src/Perspex.Animation/PropertyTransition.cs
  38. 8 8
      src/Perspex.Application/Application.cs
  39. 4 4
      src/Perspex.Base/BindingDescriptor.cs
  40. 23 23
      src/Perspex.Base/Collections/PerspexDictionary.cs
  41. 26 26
      src/Perspex.Base/Collections/PerspexList.cs
  42. 4 4
      src/Perspex.Base/Diagnostics/PerspexPropertyValue.cs
  43. 52 52
      src/Perspex.Base/PerspexObject.cs
  44. 12 12
      src/Perspex.Base/PerspexProperty.cs
  45. 5 5
      src/Perspex.Base/PerspexPropertyChangedEventArgs.cs
  46. 2 2
      src/Perspex.Base/PerspexProperty`1.cs
  47. 2 2
      src/Perspex.Base/Platform/PlatformHandle.cs
  48. 5 5
      src/Perspex.Base/PriorityBindingEntry.cs
  49. 22 22
      src/Perspex.Base/PriorityLevel.cs
  50. 12 12
      src/Perspex.Base/PriorityValue.cs
  51. 1 1
      src/Perspex.Base/Reactive/PerspexObservable.cs
  52. 20 22
      src/Perspex.Base/Threading/DispatcherTimer.cs
  53. 5 5
      src/Perspex.Base/Threading/MainLoop.cs
  54. 19 19
      src/Perspex.Controls/Border.cs
  55. 33 33
      src/Perspex.Controls/Button.cs
  56. 8 8
      src/Perspex.Controls/ColumnDefinition.cs
  57. 1 1
      src/Perspex.Controls/ColumnDefinitions.cs
  58. 8 8
      src/Perspex.Controls/ContentControl.cs
  59. 20 20
      src/Perspex.Controls/Control.cs
  60. 2 2
      src/Perspex.Controls/Deck.cs
  61. 12 12
      src/Perspex.Controls/Decorator.cs
  62. 2 2
      src/Perspex.Controls/DefinitionBase.cs
  63. 22 22
      src/Perspex.Controls/DropDown.cs
  64. 4 4
      src/Perspex.Controls/Generators/ItemContainerGenerator.cs
  65. 1 1
      src/Perspex.Controls/Generators/ItemContainerGenerator`1.cs
  66. 2 2
      src/Perspex.Controls/Generators/ItemContainers.cs
  67. 6 6
      src/Perspex.Controls/Generators/TreeItemContainerGenerator.cs
  68. 57 57
      src/Perspex.Controls/Grid.cs
  69. 3 3
      src/Perspex.Controls/GridLength.cs
  70. 2 2
      src/Perspex.Controls/GridSplitter.cs
  71. 15 15
      src/Perspex.Controls/Image.cs
  72. 15 15
      src/Perspex.Controls/ItemsControl.cs
  73. 2 2
      src/Perspex.Controls/ListBoxItem.cs
  74. 21 21
      src/Perspex.Controls/Menu.cs
  75. 58 58
      src/Perspex.Controls/MenuItem.cs
  76. 1 1
      src/Perspex.Controls/MenuItemAccessKeyHandler.cs
  77. 15 15
      src/Perspex.Controls/Panel.cs
  78. 13 13
      src/Perspex.Controls/Presenters/ContentPresenter.cs
  79. 24 24
      src/Perspex.Controls/Presenters/DeckPresenter.cs
  80. 30 30
      src/Perspex.Controls/Presenters/ItemsPresenter.cs
  81. 25 25
      src/Perspex.Controls/Presenters/ScrollContentPresenter.cs
  82. 30 30
      src/Perspex.Controls/Presenters/TextPresenter.cs
  83. 19 19
      src/Perspex.Controls/Primitives/AccessText.cs
  84. 6 6
      src/Perspex.Controls/Primitives/AdornerDecorator.cs
  85. 6 6
      src/Perspex.Controls/Primitives/AdornerLayer.cs
  86. 2 2
      src/Perspex.Controls/Primitives/HeaderedContentControl.cs
  87. 2 2
      src/Perspex.Controls/Primitives/HeaderedItemsControl.cs
  88. 38 38
      src/Perspex.Controls/Primitives/Popup.cs
  89. 14 14
      src/Perspex.Controls/Primitives/PopupRoot.cs
  90. 6 6
      src/Perspex.Controls/Primitives/RangeBase.cs
  91. 15 15
      src/Perspex.Controls/Primitives/ScrollBar.cs
  92. 39 39
      src/Perspex.Controls/Primitives/SelectingItemsControl.cs
  93. 5 5
      src/Perspex.Controls/Primitives/TabStrip.cs
  94. 28 28
      src/Perspex.Controls/Primitives/TemplatedControl.cs
  95. 9 9
      src/Perspex.Controls/Primitives/Thumb.cs
  96. 5 5
      src/Perspex.Controls/Primitives/ToggleButton.cs
  97. 39 39
      src/Perspex.Controls/Primitives/Track.cs
  98. 2 2
      src/Perspex.Controls/ProgressBar.cs
  99. 3 3
      src/Perspex.Controls/RadioButton.cs
  100. 8 8
      src/Perspex.Controls/RowDefinition.cs

+ 1 - 1
Tests/Perspex.Markup.Xaml.UnitTests/SampleModel/LogInViewModel.cs

@@ -11,7 +11,7 @@ namespace Perspex.Xaml.Base.UnitTest.SampleModel
 
         public LogInViewModel()
         {
-            this.OkCommand = ReactiveCommand.Create(
+            OkCommand = ReactiveCommand.Create(
                 this.WhenAnyValue(
                     x => x.Username,
                     x => !string.IsNullOrWhiteSpace(x)));

+ 4 - 4
Tests/Perspex.Markup.Xaml.UnitTests/SampleModel/MainWindowViewModel.cs

@@ -15,7 +15,7 @@ namespace GitHubClient.ViewModels
 
         public MainWindowViewModel()
         {
-            this.ShowLogin();
+            ShowLogin();
         }
 
         public object Content
@@ -27,15 +27,15 @@ namespace GitHubClient.ViewModels
         private void ShowLogin()
         {
             _login = new LogInViewModel();
-            _login.OkCommand.Subscribe(_ => this.ShowRepositories());
-            this.Content = _login;
+            _login.OkCommand.Subscribe(_ => ShowRepositories());
+            Content = _login;
         }
 
         private void ShowRepositories()
         {
             var vm = new UserRepositoriesViewModel();
             var task = vm.Load(_login.Username);
-            this.Content = vm;
+            Content = vm;
         }
     }
 }

+ 1 - 1
Tests/Perspex.Markup.Xaml.UnitTests/SampleModel/UserRepositoriesViewModel.cs

@@ -14,7 +14,7 @@ namespace Perspex.Xaml.Base.UnitTest.SampleModel
 
         public async Task Load(string username)
         {
-            this.Repositories = await new Task<IReadOnlyList<Repository>>(() => new List<Repository> { new Repository("Blah"), new Repository("Bleh") });
+            Repositories = await new Task<IReadOnlyList<Repository>>(() => new List<Repository> { new Repository("Blah"), new Repository("Bleh") });
         }
 
         public IReadOnlyList<Repository> Repositories

+ 2 - 2
Tests/Perspex.Markup.Xaml.UnitTests/SamplePerspexObject.cs

@@ -16,13 +16,13 @@ namespace Perspex.Xaml.Base.UnitTest
         public int Int
         {
             get { return GetValue(IntProperty); }
-            set { this.SetValue(IntProperty, value); }
+            set { SetValue(IntProperty, value); }
         }
 
         public string String
         {
             get { return GetValue(StringProperty); }
-            set { this.SetValue(StringProperty, value); }
+            set { SetValue(StringProperty, value); }
         }
     }
 }

+ 3 - 3
samples/TestApplication/App.cs

@@ -11,9 +11,9 @@ namespace TestApplication
     {
         public App()
         {
-            this.RegisterServices();
-            this.InitializeSubsystems((int)Environment.OSVersion.Platform);
-            this.Styles = new DefaultTheme();
+            RegisterServices();
+            InitializeSubsystems((int)Environment.OSVersion.Platform);
+            Styles = new DefaultTheme();
         }
     }
 }

+ 8 - 8
samples/TestApplication/Program.cs

@@ -31,7 +31,7 @@ namespace TestApplication
     {
         public Node()
         {
-            this.Children = new PerspexList<Node>();
+            Children = new PerspexList<Node>();
         }
 
         public string Name { get; set; }
@@ -446,15 +446,15 @@ namespace TestApplication
                             Content = new Image
                             {
                                 Source = new Bitmap("github_icon.png"),
-                                [!Image.WidthProperty] = size[!ScrollBar.ValueProperty],
-                                [!Image.HeightProperty] = size[!ScrollBar.ValueProperty],
+                                [!Layoutable.WidthProperty] = size[!RangeBase.ValueProperty],
+                                [!Layoutable.HeightProperty] = size[!RangeBase.ValueProperty],
                             },
                         },
                         new ProgressBar
                         {
-                            [!ProgressBar.MinimumProperty] = size[!ScrollBar.MinimumProperty],
-                            [!ProgressBar.MaximumProperty] = size[!ScrollBar.MaximumProperty],
-                            [!ProgressBar.ValueProperty] = size[!ScrollBar.ValueProperty],
+                            [!RangeBase.MinimumProperty] = size[!RangeBase.MinimumProperty],
+                            [!RangeBase.MaximumProperty] = size[!RangeBase.MaximumProperty],
+                            [!RangeBase.ValueProperty] = size[!RangeBase.ValueProperty],
                         }
                     }
                 },
@@ -617,8 +617,8 @@ namespace TestApplication
                             }),
                             PropertyTransitions = new PropertyTransitions
                             {
-                                Rectangle.WidthProperty.Transition(300),
-                                Rectangle.HeightProperty.Transition(1000),
+                                Layoutable.WidthProperty.Transition(300),
+                                Layoutable.HeightProperty.Transition(1000),
                             },
                             [Grid.ColumnProperty] = 1,
                         }),

+ 3 - 3
samples/XamlTestApplication/App.cs

@@ -11,9 +11,9 @@ namespace XamlTestApplication
     {
         public App()
         {
-            this.RegisterServices();
-            this.InitializeSubsystems((int)Environment.OSVersion.Platform);
-            this.Styles = new DefaultTheme();
+            RegisterServices();
+            InitializeSubsystems((int)Environment.OSVersion.Platform);
+            Styles = new DefaultTheme();
         }
     }
 }

+ 1 - 1
samples/XamlTestApplication/Program.cs

@@ -23,7 +23,7 @@ namespace XamlTestApplication
     {
         public Node()
         {
-            this.Children = new PerspexList<Node>();
+            Children = new PerspexList<Node>();
         }
 
         public string Name { get; set; }

+ 1 - 1
samples/XamlTestApplication/Views/MainWindow.cs

@@ -17,7 +17,7 @@ namespace XamlTestApplication.Views
     {
         public MainWindow()
         {
-            this.InitializeComponent();
+            InitializeComponent();
 
             DevTools.Attach(this);
         }

+ 1 - 1
src/Gtk/Perspex.Cairo/CairoPlatform.cs

@@ -40,7 +40,7 @@ namespace Perspex.Cairo
 
         public IRenderer CreateRenderer(IPlatformHandle handle, double width, double height)
         {
-            Locator.CurrentMutable.RegisterConstant(this.GetPangoContext(handle), typeof(Pango.Context));
+            Locator.CurrentMutable.RegisterConstant(GetPangoContext(handle), typeof(Pango.Context));
             return new Renderer(handle, width, height);
         }
 

+ 14 - 16
src/Gtk/Perspex.Cairo/Media/DrawingContext.cs

@@ -28,7 +28,7 @@ namespace Perspex.Cairo.Media
         public DrawingContext(Cairo.Surface surface)
         {
             _context = new Cairo.Context(surface);
-            this.CurrentTransform = Matrix.Identity;
+            CurrentTransform = Matrix.Identity;
         }
 
         /// <summary>
@@ -38,14 +38,12 @@ namespace Perspex.Cairo.Media
         public DrawingContext(Gdk.Drawable drawable)
         {
             _context = Gdk.CairoHelper.Create(drawable);
-            this.CurrentTransform = Matrix.Identity;
+            CurrentTransform = Matrix.Identity;
         }
 
         public Matrix CurrentTransform
         {
-            get;
-            private set;
-        }
+            get; }
 
         /// <summary>
         /// Ends a draw operation.
@@ -76,11 +74,11 @@ namespace Perspex.Cairo.Media
         /// <param name="pen">The stroke pen.</param>
         /// <param name="p1">The first point of the line.</param>
         /// <param name="p1">The second point of the line.</param>
-        public void DrawLine(Pen pen, Perspex.Point p1, Perspex.Point p2)
+        public void DrawLine(Pen pen, Point p1, Point p2)
         {
             var size = new Rect(p1, p2).Size;
 
-            this.SetBrush(pen.Brush, size);
+            SetBrush(pen.Brush, size);
             _context.LineWidth = pen.Thickness;
             _context.MoveTo(p1.ToCairo());
             _context.LineTo(p2.ToCairo());
@@ -93,17 +91,17 @@ namespace Perspex.Cairo.Media
         /// <param name="brush">The fill brush.</param>
         /// <param name="pen">The stroke pen.</param>
         /// <param name="geometry">The geometry.</param>
-        public void DrawGeometry(Perspex.Media.Brush brush, Perspex.Media.Pen pen, Perspex.Media.Geometry geometry)
+        public void DrawGeometry(Brush brush, Pen pen, Geometry geometry)
         {
             var impl = geometry.PlatformImpl as StreamGeometryImpl;
 
-            using (var pop = this.PushTransform(impl.Transform))
+            using (var pop = PushTransform(impl.Transform))
             {
                 _context.AppendPath(impl.Path);
 
                 if (brush != null)
                 {
-                    this.SetBrush(brush, geometry.Bounds.Size);
+                    SetBrush(brush, geometry.Bounds.Size);
 
                     if (pen != null)
                         _context.FillPreserve();
@@ -114,7 +112,7 @@ namespace Perspex.Cairo.Media
 
                 if (pen != null)
                 {
-                    this.SetPen(pen, geometry.Bounds.Size);
+                    SetPen(pen, geometry.Bounds.Size);
                     _context.Stroke();
                 }
             }
@@ -127,7 +125,7 @@ namespace Perspex.Cairo.Media
         /// <param name="rect">The rectangle bounds.</param>
         public void DrawRectange(Pen pen, Rect rect, float cornerRadius)
         {
-            this.SetPen(pen, rect.Size);
+            SetPen(pen, rect.Size);
             _context.Rectangle(rect.ToCairo());
             _context.Stroke();
         }
@@ -141,7 +139,7 @@ namespace Perspex.Cairo.Media
         public void DrawText(Brush foreground, Point origin, FormattedText text)
         {
             var layout = ((FormattedTextImpl)text.PlatformImpl).Layout;
-            this.SetBrush(foreground, new Size(0, 0));
+            SetBrush(foreground, new Size(0, 0));
 
             _context.MoveTo(origin.X, origin.Y);
             Pango.CairoHelper.ShowLayout(_context, layout);
@@ -152,9 +150,9 @@ namespace Perspex.Cairo.Media
         /// </summary>
         /// <param name="brush">The brush.</param>
         /// <param name="rect">The rectangle bounds.</param>
-        public void FillRectange(Perspex.Media.Brush brush, Rect rect, float cornerRadius)
+        public void FillRectange(Brush brush, Rect rect, float cornerRadius)
         {
-            this.SetBrush(brush, rect.Size);
+            SetBrush(brush, rect.Size);
             _context.Rectangle(rect.ToCairo());
             _context.Fill();
         }
@@ -226,7 +224,7 @@ namespace Perspex.Cairo.Media
 
         private void SetPen(Pen pen, Size destinationSize)
         {
-            this.SetBrush(pen.Brush, destinationSize);
+            SetBrush(pen.Brush, destinationSize);
             _context.LineWidth = pen.Thickness;
         }
     }

+ 11 - 13
src/Gtk/Perspex.Cairo/Media/FormattedTextImpl.cs

@@ -21,9 +21,9 @@ namespace Perspex.Cairo.Media
             FontWeight fontWeight)
         {
             var context = Locator.Current.GetService<Pango.Context>();
-            this.Layout = new Pango.Layout(context);
-            this.Layout.SetText(text);
-            this.Layout.FontDescription = new Pango.FontDescription
+            Layout = new Pango.Layout(context);
+            Layout.SetText(text);
+            Layout.FontDescription = new Pango.FontDescription
             {
                 Family = fontFamily,
                 Size = Pango.Units.FromDouble(fontSize * 0.73),
@@ -31,7 +31,7 @@ namespace Perspex.Cairo.Media
                 Weight = fontWeight.ToCairo()
             };
 
-            this.Layout.Alignment = textAlignment.ToCairo();
+            Layout.Alignment = textAlignment.ToCairo();
         }
 
         private Size _size;
@@ -45,19 +45,17 @@ namespace Perspex.Cairo.Media
             set
             {
                 _size = value;
-                this.Layout.Width = Pango.Units.FromDouble(value.Width);
+                Layout.Width = Pango.Units.FromDouble(value.Width);
             }
         }
 
         public Pango.Layout Layout
         {
-            get;
-            private set;
-        }
+            get; }
 
         public void Dispose()
         {
-            this.Layout.Dispose();
+            Layout.Dispose();
         }
 
         public IEnumerable<FormattedTextLine> GetLines()
@@ -70,7 +68,7 @@ namespace Perspex.Cairo.Media
             int textPosition;
             int trailing;
 
-            var isInside = this.Layout.XyToIndex(
+            var isInside = Layout.XyToIndex(
                 Pango.Units.FromDouble(point.X),
                 Pango.Units.FromDouble(point.Y),
                 out textPosition,
@@ -86,7 +84,7 @@ namespace Perspex.Cairo.Media
 
         public Rect HitTestTextPosition(int index)
         {
-            return this.Layout.IndexToPos(index).ToPerspex();
+            return Layout.IndexToPos(index).ToPerspex();
         }
 
         public IEnumerable<Rect> HitTestTextRange(int index, int length)
@@ -95,7 +93,7 @@ namespace Perspex.Cairo.Media
 
             for (var i = 0; i < length; i++)
             {
-                ranges.Add(this.HitTestTextPosition(index + i));
+                ranges.Add(HitTestTextPosition(index + i));
             }
 
             return ranges;
@@ -105,7 +103,7 @@ namespace Perspex.Cairo.Media
         {
             int width;
             int height;
-            this.Layout.GetPixelSize(out width, out height);
+            Layout.GetPixelSize(out width, out height);
 
             return new Size(width, height);
         }

+ 5 - 7
src/Gtk/Perspex.Cairo/Media/Imaging/BitmapImpl.cs

@@ -12,28 +12,26 @@ namespace Perspex.Cairo.Media.Imaging
     {
         public BitmapImpl(Cairo.ImageSurface surface)
         {
-            this.Surface = surface;
+            Surface = surface;
         }
 
         public int PixelWidth
         {
-            get { return this.Surface.Width; }
+            get { return Surface.Width; }
         }
 
         public int PixelHeight
         {
-            get { return this.Surface.Height; }
+            get { return Surface.Height; }
         }
 
         public Cairo.ImageSurface Surface
         {
-            get;
-            private set;
-        }
+            get; }
 
         public void Save(string fileName)
         {
-            this.Surface.WriteToPng(fileName);
+            Surface.WriteToPng(fileName);
         }
     }
 }

+ 2 - 2
src/Gtk/Perspex.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs

@@ -18,12 +18,12 @@ namespace Perspex.Cairo.Media.Imaging
 
         public void Dispose()
         {
-            this.Surface.Dispose();
+            Surface.Dispose();
         }
 
         public void Render(IVisual visual)
         {
-            Renderer renderer = new Renderer(this.Surface);
+            Renderer renderer = new Renderer(Surface);
             renderer.Render(visual, new PlatformHandle(IntPtr.Zero, "RTB"));
         }
     }

+ 1 - 1
src/Gtk/Perspex.Cairo/Media/StreamGeometryContextImpl.cs

@@ -16,7 +16,7 @@ namespace Perspex.Cairo.Media
         public StreamGeometryContextImpl(StreamGeometryImpl imp)
         {
             _impl = imp;
-            _surf = new Cairo.ImageSurface(global::Cairo.Format.Argb32, 0, 0);
+            _surf = new Cairo.ImageSurface(Cairo.Format.Argb32, 0, 0);
             _context = new Cairo.Context(_surf);
         }
 

+ 5 - 5
src/Gtk/Perspex.Cairo/Media/StreamGeometryImpl.cs

@@ -21,10 +21,10 @@ namespace Perspex.Cairo.Media
         public StreamGeometryImpl(Cairo.Path path)
         {
             _impl = new StreamGeometryContextImpl(this);
-            this.Path = path;
+            Path = path;
         }
 
-        public global::Cairo.Path Path
+        public Cairo.Path Path
         {
             get;
             set;
@@ -44,7 +44,7 @@ namespace Perspex.Cairo.Media
             get { return _transform; }
             set
             {
-                if (value != this.Transform)
+                if (value != Transform)
                 {
                     if (!value.IsIdentity)
                     {
@@ -56,12 +56,12 @@ namespace Perspex.Cairo.Media
 
         public IStreamGeometryImpl Clone()
         {
-            return new StreamGeometryImpl(this.Path);
+            return new StreamGeometryImpl(Path);
         }
 
         public Rect GetRenderBounds(double strokeThickness)
         {
-            return this.Bounds;
+            return Bounds;
         }
 
         public IStreamGeometryContextImpl Open()

+ 1 - 1
src/Gtk/Perspex.Gtk/ClipboardImpl.cs

@@ -12,7 +12,7 @@ namespace Perspex.Gtk
 
     internal class ClipboardImpl : IClipboard
     {
-        private static Gtk.Clipboard GetClipboard() => Gtk.Clipboard.GetForDisplay(Gdk.Display.Default, new Atom(IntPtr.Zero));
+        private static Gtk.Clipboard GetClipboard() => Gtk.Clipboard.GetForDisplay(Display.Default, new Atom(IntPtr.Zero));
 
         public Task<string> GetTextAsync()
         {

+ 1 - 1
src/Gtk/Perspex.Gtk/CursorFactory.cs

@@ -48,7 +48,7 @@ namespace Perspex.Gtk
             {
                 var theme = Gtk.IconTheme.Default;
                 var icon = theme.LoadIcon(name, 32, default(Gtk.IconLookupFlags));
-                rv = icon == null ? new Gdk.Cursor(CursorType.XCursor) : new Gdk.Cursor(Gdk.Display.Default, icon, 0, 0);
+                rv = icon == null ? new Gdk.Cursor(CursorType.XCursor) : new Gdk.Cursor(Display.Default, icon, 0, 0);
             }
             else
             {

+ 4 - 4
src/Gtk/Perspex.Gtk/Input/GtkKeyboardDevice.cs

@@ -34,19 +34,19 @@ namespace Perspex.Gtk
             get { return s_instance; }
         }
 
-        public static Perspex.Input.Key ConvertKey(Gdk.Key key)
+        public static Key ConvertKey(Gdk.Key key)
         {
             // TODO: Don't use reflection for this! My eyes!!!
             if (key == Gdk.Key.BackSpace)
             {
-                return Perspex.Input.Key.Back;
+                return Key.Back;
             }
             else
             {
                 string s;
                 if (!s_nameDic.TryGetValue(key, out s))
                     s = "Unknown";
-                Perspex.Input.Key result;
+                Key result;
 
                 if (Enum.TryParse(s, true, out result))
                 {
@@ -54,7 +54,7 @@ namespace Perspex.Gtk
                 }
                 else
                 {
-                    return Perspex.Input.Key.None;
+                    return Key.None;
                 }
             }
         }

+ 1 - 1
src/Gtk/Perspex.Gtk/PopupImpl.cs

@@ -15,7 +15,7 @@ namespace Perspex.Gtk
 
         public void SetPosition(Point p)
         {
-            this.Move((int)p.X, (int)p.Y);
+            Move((int)p.X, (int)p.Y);
         }
     }
 }

+ 27 - 27
src/Gtk/Perspex.Gtk/WindowImpl.cs

@@ -31,7 +31,7 @@ namespace Perspex.Gtk
         public WindowImpl()
             : base(Gtk.WindowType.Toplevel)
         {
-            this.DefaultSize = new Gdk.Size(640, 480);
+            DefaultSize = new Gdk.Size(640, 480);
             Init();
         }
 
@@ -43,10 +43,10 @@ namespace Perspex.Gtk
 
         private void Init()
         {
-            this.Events = Gdk.EventMask.PointerMotionMask |
-              Gdk.EventMask.ButtonPressMask |
-              Gdk.EventMask.ButtonReleaseMask;
-            _windowHandle = new PlatformHandle(this.Handle, "GtkWindow");
+            Events = EventMask.PointerMotionMask |
+              EventMask.ButtonPressMask |
+              EventMask.ButtonReleaseMask;
+            _windowHandle = new PlatformHandle(Handle, "GtkWindow");
             _imContext = new Gtk.IMMulticontext();
             _imContext.Commit += ImContext_Commit;
         }
@@ -82,14 +82,14 @@ namespace Perspex.Gtk
         public void Invalidate(Rect rect)
         {
 #pragma warning disable CS0612 // Type or member is obsolete
-            this.Draw(new Gdk.Rectangle { X = (int)rect.X, Y = (int)rect.Y, Width = (int)rect.Width, Height = (int)rect.Height });
+            Draw(new Rectangle { X = (int)rect.X, Y = (int)rect.Y, Width = (int)rect.Width, Height = (int)rect.Height });
 #pragma warning restore CS0612 // Type or member is obsolete
         }
 
         public Point PointToScreen(Point point)
         {
             int x, y;
-            this.GdkWindow.GetDeskrelativeOrigin(out x, out y);
+            GdkWindow.GetDeskrelativeOrigin(out x, out y);
 
             return new Point(point.X + x, point.Y + y);
         }
@@ -101,7 +101,7 @@ namespace Perspex.Gtk
 
         public void SetTitle(string title)
         {
-            this.Title = title;
+            Title = title;
         }
 
 
@@ -112,15 +112,15 @@ namespace Perspex.Gtk
 
         public IDisposable ShowDialog()
         {
-            this.Modal = true;
-            this.Show();
+            Modal = true;
+            Show();
 
             return Disposable.Empty;
         }
 
         void ITopLevelImpl.Activate()
         {
-            this.Activate();
+            Activate();
         }
 
         private static ModifierKeys GetModifierKeys(ModifierType state)
@@ -136,7 +136,7 @@ namespace Perspex.Gtk
             return rv;
         }
 
-        protected override bool OnButtonPressEvent(Gdk.EventButton evnt)
+        protected override bool OnButtonPressEvent(EventButton evnt)
         {
             var e = new RawMouseEventArgs(
                 GtkMouseDevice.Instance,
@@ -144,11 +144,11 @@ namespace Perspex.Gtk
                 _owner,
                 RawMouseEventType.LeftButtonDown,
                 new Point(evnt.X, evnt.Y), GetModifierKeys(evnt.State));
-            this.Input(e);
+            Input(e);
             return true;
         }
 
-        protected override bool OnButtonReleaseEvent(Gdk.EventButton evnt)
+        protected override bool OnButtonReleaseEvent(EventButton evnt)
         {
             var e = new RawMouseEventArgs(
                 GtkMouseDevice.Instance,
@@ -156,17 +156,17 @@ namespace Perspex.Gtk
                 _owner,
                 RawMouseEventType.LeftButtonUp,
                 new Point(evnt.X, evnt.Y), GetModifierKeys(evnt.State));
-            this.Input(e);
+            Input(e);
             return true;
         }
 
-        protected override bool OnConfigureEvent(Gdk.EventConfigure evnt)
+        protected override bool OnConfigureEvent(EventConfigure evnt)
         {
             var newSize = new Size(evnt.Width, evnt.Height);
 
             if (newSize != _clientSize)
             {
-                this.Resized(newSize);
+                Resized(newSize);
             }
 
             return true;
@@ -174,10 +174,10 @@ namespace Perspex.Gtk
 
         protected override void OnDestroyed()
         {
-            this.Closed();
+            Closed();
         }
 
-        private bool ProcessKeyEvent(Gdk.EventKey evnt)
+        private bool ProcessKeyEvent(EventKey evnt)
         {
             _lastKeyEventTimestamp = evnt.Time;
             if (_imContext.FilterKeypress(evnt))
@@ -187,31 +187,31 @@ namespace Perspex.Gtk
                 evnt.Time,
                 evnt.Type == EventType.KeyPress ? RawKeyEventType.KeyDown : RawKeyEventType.KeyUp,
                 GtkKeyboardDevice.ConvertKey(evnt.Key), GetModifierKeys(evnt.State));
-            this.Input(e);
+            Input(e);
             return true;
         }
 
-        protected override bool OnKeyPressEvent(Gdk.EventKey evnt) => ProcessKeyEvent(evnt);
+        protected override bool OnKeyPressEvent(EventKey evnt) => ProcessKeyEvent(evnt);
 
         protected override bool OnKeyReleaseEvent(EventKey evnt) => ProcessKeyEvent(evnt);
 
         private void ImContext_Commit(object o, Gtk.CommitArgs args)
         {
-            this.Input(new RawTextInputEventArgs(GtkKeyboardDevice.Instance, _lastKeyEventTimestamp, args.Str));
+            Input(new RawTextInputEventArgs(GtkKeyboardDevice.Instance, _lastKeyEventTimestamp, args.Str));
         }
 
-        protected override bool OnExposeEvent(Gdk.EventExpose evnt)
+        protected override bool OnExposeEvent(EventExpose evnt)
         {
-            this.Paint(evnt.Area.ToPerspex(), this.GetHandle(evnt.Window));
+            Paint(evnt.Area.ToPerspex(), GetHandle(evnt.Window));
             return true;
         }
 
         protected override void OnFocusActivated()
         {
-            this.Activated();
+            Activated();
         }
 
-        protected override bool OnMotionNotifyEvent(Gdk.EventMotion evnt)
+        protected override bool OnMotionNotifyEvent(EventMotion evnt)
         {
             var position = new Point(evnt.X, evnt.Y);
 
@@ -223,7 +223,7 @@ namespace Perspex.Gtk
                 _owner,
                 RawMouseEventType.Move,
                 position, GetModifierKeys(evnt.State));
-            this.Input(e);
+            Input(e);
             return true;
         }
 

+ 4 - 4
src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs

@@ -24,9 +24,9 @@ namespace Perspex.Markup.Xaml.Context
 
         public IXamlParser CreateForReadingFree()
         {
-            var objectAssemblerForUndefinedRoot = this.GetObjectAssemblerForUndefinedRoot();
+            var objectAssemblerForUndefinedRoot = GetObjectAssemblerForUndefinedRoot();
 
-            return this.CreateParser(objectAssemblerForUndefinedRoot);
+            return CreateParser(objectAssemblerForUndefinedRoot);
         }
 
         private IXamlParser CreateParser(IObjectAssembler objectAssemblerForUndefinedRoot)
@@ -48,9 +48,9 @@ namespace Perspex.Markup.Xaml.Context
 
         public IXamlParser CreateForReadingSpecificInstance(object rootInstance)
         {
-            var objectAssemblerForUndefinedRoot = this.GetObjectAssemblerForSpecificRoot(rootInstance);
+            var objectAssemblerForUndefinedRoot = GetObjectAssemblerForSpecificRoot(rootInstance);
 
-            return this.CreateParser(objectAssemblerForUndefinedRoot);
+            return CreateParser(objectAssemblerForUndefinedRoot);
         }
 
         private IObjectAssembler GetObjectAssemblerForSpecificRoot(object rootInstance)

+ 1 - 1
src/Markup/Perspex.Markup.Xaml/Context/PerspexTypeRepository.cs

@@ -26,7 +26,7 @@ namespace Perspex.Markup.Xaml.Context
         public override XamlType GetXamlType(Type type)
         {
             Guard.ThrowIfNull(type, nameof(type));
-            return new PerspexXamlType(type, this, _typeFactory, this.FeatureProvider, _propertyBinder);
+            return new PerspexXamlType(type, this, _typeFactory, FeatureProvider, _propertyBinder);
         }
     }
 }

+ 9 - 9
src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMemberValuePlugin.cs

@@ -23,9 +23,9 @@ namespace Perspex.Markup.Xaml.Context
 
         public override void SetValue(object instance, object value)
         {
-            if (this.ValueRequiresSpecialHandling(value))
+            if (ValueRequiresSpecialHandling(value))
             {
-                this.HandleSpecialValue(instance, value);
+                HandleSpecialValue(instance, value);
             }
             else
             {
@@ -38,11 +38,11 @@ namespace Perspex.Markup.Xaml.Context
             var definition = value as XamlBindingDefinition;
             if (definition != null)
             {
-                this.HandleXamlBindingDefinition(definition);
+                HandleXamlBindingDefinition(definition);
             }
-            else if (this.IsPerspexProperty)
+            else if (IsPerspexProperty)
             {
-                this.HandlePerspexProperty(instance, value);
+                HandlePerspexProperty(instance, value);
             }
             else
             {
@@ -52,7 +52,7 @@ namespace Perspex.Markup.Xaml.Context
 
         private void HandlePerspexProperty(object instance, object value)
         {
-            var pp = this.PerspexProperty;
+            var pp = PerspexProperty;
             var po = (PerspexObject)instance;
             po.SetValue(pp, value);
         }
@@ -63,7 +63,7 @@ namespace Perspex.Markup.Xaml.Context
             _propertyBinder.Create(xamlBindingDefinition);
 
             var observableForDataContext = subjectObject.GetObservable(Control.DataContextProperty);
-            observableForDataContext.Where(o => o != null).Subscribe(_ => this.BindToDataContextWhenItsSet(xamlBindingDefinition));
+            observableForDataContext.Where(o => o != null).Subscribe(_ => BindToDataContextWhenItsSet(xamlBindingDefinition));
         }
 
         private void BindToDataContextWhenItsSet(XamlBindingDefinition definition)
@@ -90,10 +90,10 @@ namespace Perspex.Markup.Xaml.Context
 
         private bool ValueRequiresSpecialHandling(object value)
         {
-            return value is XamlBindingDefinition || this.IsPerspexProperty;
+            return value is XamlBindingDefinition || IsPerspexProperty;
         }
 
-        private bool IsPerspexProperty => this.PerspexProperty != null;
+        private bool IsPerspexProperty => PerspexProperty != null;
 
         public override string ToString()
         {

+ 1 - 1
src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlType.cs

@@ -25,7 +25,7 @@ namespace Perspex.Markup.Xaml.Context
 
         protected override XamlMember LookupMember(string name)
         {
-            return new PerspexXamlMember(name, this, this.TypeRepository, this.FeatureProvider, _propertyBinder);
+            return new PerspexXamlMember(name, this, TypeRepository, FeatureProvider, _propertyBinder);
         }
 
         public override string ToString()

+ 7 - 7
src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/ObservablePropertyBranch.cs

@@ -25,15 +25,15 @@ namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking
             _instance = instance;
             _propertyPath = propertyPath;
             _mountPoint = new PropertyMountPoint(instance, propertyPath);
-            var properties = this.GetPropertiesThatRaiseNotifications();
-            this.Values = this.CreateUnifiedObservableFromNodes(properties);
+            var properties = GetPropertiesThatRaiseNotifications();
+            Values = CreateUnifiedObservableFromNodes(properties);
         }
 
         public IObservable<object> Values { get; private set; }
 
         private IObservable<object> CreateUnifiedObservableFromNodes(IEnumerable<PropertyDefinition> subscriptions)
         {
-            return subscriptions.Select(this.GetObservableFromProperty).Merge();
+            return subscriptions.Select(GetObservableFromProperty).Merge();
         }
 
         private IObservable<object> GetObservableFromProperty(PropertyDefinition subscription)
@@ -47,7 +47,7 @@ namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking
 
         private IEnumerable<PropertyDefinition> GetPropertiesThatRaiseNotifications()
         {
-            return this.GetSubscriptionsRecursive(_instance, _propertyPath, 0);
+            return GetSubscriptionsRecursive(_instance, _propertyPath, 0);
         }
 
         private IEnumerable<PropertyDefinition> GetSubscriptionsRecursive(object current, PropertyPath propertyPath, int i)
@@ -71,7 +71,7 @@ namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking
 
                 if (i < _propertyPath.Chunks.Length - 1)
                 {
-                    subscriptions.AddRange(this.GetSubscriptionsRecursive(nextInstance, propertyPath, i + 1));
+                    subscriptions.AddRange(GetSubscriptionsRecursive(nextInstance, propertyPath, i + 1));
                 }
             }
 
@@ -97,8 +97,8 @@ namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking
         {
             public PropertyDefinition(INotifyPropertyChanged parent, string propertyName)
             {
-                this.Parent = parent;
-                this.PropertyName = propertyName;
+                Parent = parent;
+                PropertyName = propertyName;
             }
 
             public INotifyPropertyChanged Parent { get; }

+ 6 - 6
src/Markup/Perspex.Markup.Xaml/DataBinding/DataContextChangeSynchronizer.cs

@@ -76,20 +76,20 @@ namespace Perspex.Markup.Xaml.DataBinding
             _bindingTarget.Value = ConvertedValue(_sourceEndpoint.Value, _bindingTarget.Property.PropertyType);
 
             // We use the native Bind method from PerspexObject to subscribe to the SourceValues observable
-            _bindingTarget.Object.Bind(_bindingTarget.Property, this.SourceValues);
+            _bindingTarget.Object.Bind(_bindingTarget.Property, SourceValues);
         }
 
         public void StartUpdatingSourceWhenTargetChanges()
         {
             // We subscribe to the TargetValues and each time we have a new value, we update the source with it
-            this.TargetValues.Subscribe(newValue => _sourceEndpoint.Value = newValue);
+            TargetValues.Subscribe(newValue => _sourceEndpoint.Value = newValue);
         }
 
         private IObservable<object> SourceValues
         {
             get
             {
-                return _sourceEndpoint.Values.Select(originalValue => this.ConvertedValue(originalValue, _bindingTarget.Property.PropertyType));
+                return _sourceEndpoint.Values.Select(originalValue => ConvertedValue(originalValue, _bindingTarget.Property.PropertyType));
             }
         }
 
@@ -98,7 +98,7 @@ namespace Perspex.Markup.Xaml.DataBinding
             get
             {
                 return _bindingEndpoint.Object
-                    .GetObservable(_bindingEndpoint.Property).Select(o => this.ConvertedValue(o, _sourceEndpoint.Type));
+                    .GetObservable(_bindingEndpoint.Property).Select(o => ConvertedValue(o, _sourceEndpoint.Type));
             }
         }
 
@@ -116,7 +116,7 @@ namespace Perspex.Markup.Xaml.DataBinding
         private object ConvertedValue(object originalValue, Type propertyType)
         {
             object converted;
-            if (this.TryConvert(originalValue, propertyType, out converted))
+            if (TryConvert(originalValue, propertyType, out converted))
             {
                 return converted;
             }
@@ -128,7 +128,7 @@ namespace Perspex.Markup.Xaml.DataBinding
         {
             if (originalValue != null)
             {
-                if (this.CanAssignWithoutConversion)
+                if (CanAssignWithoutConversion)
                 {
                     finalValue = originalValue;
                     return true;

+ 4 - 4
src/Markup/Perspex.Markup.Xaml/DataBinding/SourceBindingEndpoint.cs

@@ -18,10 +18,10 @@ namespace Perspex.Markup.Xaml.DataBinding
 
         public SourceBindingEndpoint(INotifyPropertyChanged source, Type propertyType, dynamic propertyGetter, Delegate propertySetter)
         {
-            this.Source = source;
-            this.PropertyType = propertyType;
-            this.PropertyGetter = propertyGetter;
-            this.PropertySetter = propertySetter;
+            Source = source;
+            PropertyType = propertyType;
+            PropertyGetter = propertyGetter;
+            PropertySetter = propertySetter;
         }
     }
 }

+ 2 - 2
src/Markup/Perspex.Markup.Xaml/DataBinding/TargetBindingEndpoint.cs

@@ -11,8 +11,8 @@ namespace Perspex.Markup.Xaml.DataBinding
 
         public TargetBindingEndpoint(PerspexObject obj, PerspexProperty property)
         {
-            this.Object = obj;
-            this.Property = property;
+            Object = obj;
+            Property = property;
         }
     }
 }

+ 5 - 5
src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBinding.cs

@@ -35,23 +35,23 @@ namespace Perspex.Markup.Xaml.DataBinding
 
             try
             {
-                var bindingSource = new DataContextChangeSynchronizer.BindingSource(this.SourcePropertyPath, dataContext);
-                var bindingTarget = new DataContextChangeSynchronizer.BindingTarget(this.Target, this.TargetProperty);
+                var bindingSource = new DataContextChangeSynchronizer.BindingSource(SourcePropertyPath, dataContext);
+                var bindingTarget = new DataContextChangeSynchronizer.BindingTarget(Target, TargetProperty);
 
                 _changeSynchronizer = new DataContextChangeSynchronizer(bindingSource, bindingTarget, _typeConverterProvider);
 
-                if (this.BindingMode == BindingMode.TwoWay)
+                if (BindingMode == BindingMode.TwoWay)
                 {
                     _changeSynchronizer.StartUpdatingTargetWhenSourceChanges();
                     _changeSynchronizer.StartUpdatingSourceWhenTargetChanges();
                 }
 
-                if (this.BindingMode == BindingMode.OneWay)
+                if (BindingMode == BindingMode.OneWay)
                 {
                     _changeSynchronizer.StartUpdatingTargetWhenSourceChanges();
                 }
 
-                if (this.BindingMode == BindingMode.OneWayToSource)
+                if (BindingMode == BindingMode.OneWayToSource)
                 {
                     _changeSynchronizer.StartUpdatingSourceWhenTargetChanges();
                 }

+ 3 - 3
src/Markup/Perspex.Markup.Xaml/MarkupExtensions/BindingExtension.cs

@@ -17,7 +17,7 @@ namespace Perspex.Markup.Xaml.MarkupExtensions
 
         public BindingExtension(string path)
         {
-            this.Path = path;
+            Path = path;
         }
 
         public override object ProvideValue(MarkupExtensionContext extensionContext)
@@ -31,8 +31,8 @@ namespace Perspex.Markup.Xaml.MarkupExtensions
                 (
                 target,
                 perspexProperty,
-                new PropertyPath(this.Path),
-                this.Mode == BindingMode.Default ? BindingMode.OneWay : this.Mode
+                new PropertyPath(Path),
+                Mode == BindingMode.Default ? BindingMode.OneWay : Mode
                 );
         }
 

+ 4 - 4
src/Markup/Perspex.Markup.Xaml/MarkupExtensions/TypeExtension.cs

@@ -20,7 +20,7 @@ namespace Perspex.Markup.Xaml.MarkupExtensions
 
         public TypeExtension(Type type)
         {
-            this.Type = type;
+            Type = type;
         }
 
         public string TypeName { get; set; }
@@ -37,12 +37,12 @@ namespace Perspex.Markup.Xaml.MarkupExtensions
 
         public override object ProvideValue(MarkupExtensionContext markupExtensionContext)
         {
-            if (this.Type != null)
+            if (Type != null)
             {
-                return this.Type;
+                return Type;
             }
 
-            return this.ResolveFromString(this.TypeName, markupExtensionContext.TypeRepository);
+            return ResolveFromString(TypeName, markupExtensionContext.TypeRepository);
         }
     }
 }

+ 2 - 2
src/Markup/Perspex.Markup.Xaml/PerspexXamlLoader.cs

@@ -52,7 +52,7 @@ namespace Perspex.Markup.Xaml
         /// <returns>The loaded object.</returns>
         public object Load(Type type, object rootInstance = null)
         {
-            return this.Load(GetUriFor(type), rootInstance);
+            return Load(GetUriFor(type), rootInstance);
         }
 
         /// <summary>
@@ -75,7 +75,7 @@ namespace Perspex.Markup.Xaml
 
             using (var stream = assetLocator.Open(uri))
             {
-                return this.Load(stream, rootInstance);
+                return Load(stream, rootInstance);
             }
         }
 

+ 5 - 5
src/Markup/Perspex.Markup.Xaml/Templates/XamlDataTemplate.cs

@@ -13,17 +13,17 @@ namespace Perspex.Markup.Xaml.Templates
     {
         private bool MyMatch(object data)
         {
-            if (this.DataType == null)
+            if (DataType == null)
             {
                 throw new InvalidOperationException("XAML DataTemplates must have a DataType");
             }
 
-            return this.DataType == data.GetType();
+            return DataType == data.GetType();
         }
 
         private Control CreateVisualTreeForItem(object data)
         {
-            var visualTreeForItem = this.Content.Load();
+            var visualTreeForItem = Content.Load();
             visualTreeForItem.DataContext = data;
             return visualTreeForItem;
         }
@@ -34,12 +34,12 @@ namespace Perspex.Markup.Xaml.Templates
 
         public IControl Build(object param)
         {
-            return this.CreateVisualTreeForItem(param);
+            return CreateVisualTreeForItem(param);
         }
 
         public bool Match(object data)
         {
-            return this.MyMatch(data);
+            return MyMatch(data);
         }
     }
 }

+ 2 - 6
src/Perspex.Animation/Animate.cs

@@ -45,9 +45,7 @@ namespace Perspex.Animation
         /// </value>
         public static Stopwatch Stopwatch
         {
-            get;
-            private set;
-        }
+            get; }
 
         /// <summary>
         /// Gets the animation timer.
@@ -62,9 +60,7 @@ namespace Perspex.Animation
         /// </value>
         public static IObservable<TimeSpan> Timer
         {
-            get;
-            private set;
-        }
+            get; }
 
         /// <summary>
         /// Gets a timer that fires every frame for the specified duration.

+ 1 - 1
src/Perspex.Animation/LinearDoubleEasing.cs

@@ -35,7 +35,7 @@ namespace Perspex.Animation
         /// </returns>
         object IEasing.Ease(double progress, object start, object finish)
         {
-            return this.Ease(progress, (double)start, (double)finish);
+            return Ease(progress, (double)start, (double)finish);
         }
     }
 }

+ 3 - 3
src/Perspex.Animation/PropertyTransition.cs

@@ -18,9 +18,9 @@ namespace Perspex.Animation
         /// <param name="easing">The easing function to use.</param>
         public PropertyTransition(PerspexProperty property, TimeSpan duration, IEasing easing)
         {
-            this.Property = property;
-            this.Duration = duration;
-            this.Easing = easing;
+            Property = property;
+            Duration = duration;
+            Easing = easing;
         }
 
         /// <summary>

+ 8 - 8
src/Perspex.Application/Application.cs

@@ -154,14 +154,14 @@ namespace Perspex
         protected virtual void RegisterServices()
         {
             PerspexSynchronizationContext.InstallIfNeeded();
-            this.FocusManager = new FocusManager();
-            this.InputManager = new InputManager();
+            FocusManager = new FocusManager();
+            InputManager = new InputManager();
 
             Locator.CurrentMutable.Register(() => new AccessKeyHandler(), typeof(IAccessKeyHandler));
             Locator.CurrentMutable.Register(() => this, typeof(IGlobalDataTemplates));
             Locator.CurrentMutable.Register(() => this, typeof(IGlobalStyles));
-            Locator.CurrentMutable.Register(() => this.FocusManager, typeof(IFocusManager));
-            Locator.CurrentMutable.Register(() => this.InputManager, typeof(IInputManager));
+            Locator.CurrentMutable.Register(() => FocusManager, typeof(IFocusManager));
+            Locator.CurrentMutable.Register(() => InputManager, typeof(IInputManager));
             Locator.CurrentMutable.Register(() => new KeyboardNavigationHandler(), typeof(IKeyboardNavigationHandler));
             Locator.CurrentMutable.Register(() => _styler, typeof(IStyler));
             Locator.CurrentMutable.Register(() => new LayoutManager(), typeof(ILayoutManager));
@@ -176,13 +176,13 @@ namespace Perspex
         {
             if (platformID == 4 || platformID == 6)
             {
-                this.InitializeSubsystem("Perspex.Cairo");
-                this.InitializeSubsystem("Perspex.Gtk");
+                InitializeSubsystem("Perspex.Cairo");
+                InitializeSubsystem("Perspex.Gtk");
             }
             else
             {
-                this.InitializeSubsystem("Perspex.Direct2D1");
-                this.InitializeSubsystem("Perspex.Win32");
+                InitializeSubsystem("Perspex.Direct2D1");
+                InitializeSubsystem("Perspex.Win32");
             }
         }
 

+ 4 - 4
src/Perspex.Base/BindingDescriptor.cs

@@ -81,7 +81,7 @@ namespace Perspex
         /// <summary>
         /// Gets a description of the binding.
         /// </summary>
-        public string Description => string.Format("{0}.{1}", this.Source?.GetType().Name, this.Property.Name);
+        public string Description => string.Format("{0}.{1}", Source?.GetType().Name, Property.Name);
 
         /// <summary>
         /// Makes a two-way binding.
@@ -110,7 +110,7 @@ namespace Perspex
         /// <returns>The object that the method was called on.</returns>
         public BindingDescriptor WithMode(BindingMode mode)
         {
-            this.Mode = mode;
+            Mode = mode;
             return this;
         }
 
@@ -121,14 +121,14 @@ namespace Perspex
         /// <returns>The object that the method was called on.</returns>
         public BindingDescriptor WithPriority(BindingPriority priority)
         {
-            this.Priority = priority;
+            Priority = priority;
             return this;
         }
 
         /// <inheritdoc/>
         protected override IDisposable SubscribeCore(IObserver<object> observer)
         {
-            return this.Source.GetObservable(this.Property).Subscribe(observer);
+            return Source.GetObservable(Property).Subscribe(observer);
         }
     }
 }

+ 23 - 23
src/Perspex.Base/Collections/PerspexDictionary.cs

@@ -83,23 +83,23 @@ namespace Perspex.Collections
 
                 if (replace)
                 {
-                    if (this.PropertyChanged != null)
+                    if (PropertyChanged != null)
                     {
-                        this.PropertyChanged(this, new PropertyChangedEventArgs($"Item[{key}]"));
+                        PropertyChanged(this, new PropertyChangedEventArgs($"Item[{key}]"));
                     }
 
-                    if (this.CollectionChanged != null)
+                    if (CollectionChanged != null)
                     {
                         var e = new NotifyCollectionChangedEventArgs(
                             NotifyCollectionChangedAction.Replace,
                             new KeyValuePair<TKey, TValue>(key, value),
                             new KeyValuePair<TKey, TValue>(key, old));
-                        this.CollectionChanged(this, e);
+                        CollectionChanged(this, e);
                     }
                 }
                 else
                 {
-                    this.NotifyAdd(key, value);
+                    NotifyAdd(key, value);
                 }
             }
         }
@@ -108,7 +108,7 @@ namespace Perspex.Collections
         public void Add(TKey key, TValue value)
         {
             _inner.Add(key, value);
-            this.NotifyAdd(key, value);
+            NotifyAdd(key, value);
         }
 
         /// <inheritdoc/>
@@ -118,19 +118,19 @@ namespace Perspex.Collections
 
             _inner = new Dictionary<TKey, TValue>();
 
-            if (this.PropertyChanged != null)
+            if (PropertyChanged != null)
             {
-                this.PropertyChanged(this, new PropertyChangedEventArgs("Count"));
-                this.PropertyChanged(this, new PropertyChangedEventArgs($"Item[]"));
+                PropertyChanged(this, new PropertyChangedEventArgs("Count"));
+                PropertyChanged(this, new PropertyChangedEventArgs($"Item[]"));
             }
 
-            if (this.CollectionChanged != null)
+            if (CollectionChanged != null)
             {
                 var e = new NotifyCollectionChangedEventArgs(
                     NotifyCollectionChangedAction.Remove,
                     old.ToList(),
                     -1);
-                this.CollectionChanged(this, e);
+                CollectionChanged(this, e);
             }
         }
 
@@ -159,19 +159,19 @@ namespace Perspex.Collections
 
             if (_inner.TryGetValue(key, out value))
             {
-                if (this.PropertyChanged != null)
+                if (PropertyChanged != null)
                 {
-                    this.PropertyChanged(this, new PropertyChangedEventArgs("Count"));
-                    this.PropertyChanged(this, new PropertyChangedEventArgs($"Item[{key}]"));
+                    PropertyChanged(this, new PropertyChangedEventArgs("Count"));
+                    PropertyChanged(this, new PropertyChangedEventArgs($"Item[{key}]"));
                 }
 
-                if (this.CollectionChanged != null)
+                if (CollectionChanged != null)
                 {
                     var e = new NotifyCollectionChangedEventArgs(
                         NotifyCollectionChangedAction.Remove,
                         new[] { new KeyValuePair<TKey, TValue>(key, value) },
                         -1);
-                    this.CollectionChanged(this, e);
+                    CollectionChanged(this, e);
                 }
 
                 return true;
@@ -197,7 +197,7 @@ namespace Perspex.Collections
         /// <inheritdoc/>
         void ICollection<KeyValuePair<TKey, TValue>>.Add(KeyValuePair<TKey, TValue> item)
         {
-            this.Add(item.Key, item.Value);
+            Add(item.Key, item.Value);
         }
 
         /// <inheritdoc/>
@@ -209,25 +209,25 @@ namespace Perspex.Collections
         /// <inheritdoc/>
         bool ICollection<KeyValuePair<TKey, TValue>>.Remove(KeyValuePair<TKey, TValue> item)
         {
-            return this.Remove(item.Key);
+            return Remove(item.Key);
         }
 
         private void NotifyAdd(TKey key, TValue value)
         {
-            if (this.PropertyChanged != null)
+            if (PropertyChanged != null)
             {
-                this.PropertyChanged(this, new PropertyChangedEventArgs("Count"));
-                this.PropertyChanged(this, new PropertyChangedEventArgs($"Item[{key}]"));
+                PropertyChanged(this, new PropertyChangedEventArgs("Count"));
+                PropertyChanged(this, new PropertyChangedEventArgs($"Item[{key}]"));
             }
 
-            if (this.CollectionChanged != null)
+            if (CollectionChanged != null)
             {
                 var val = new KeyValuePair<TKey, TValue>(key, value);
                 var e = new NotifyCollectionChangedEventArgs(
                     NotifyCollectionChangedAction.Add,
                     new[] { new KeyValuePair<TKey, TValue>(key, value) },
                     -1);
-                this.CollectionChanged(this, e);
+                CollectionChanged(this, e);
             }
         }
     }

+ 26 - 26
src/Perspex.Base/Collections/PerspexList.cs

@@ -121,13 +121,13 @@ namespace Perspex.Collections
                 T old = _inner[index];
                 _inner[index] = value;
 
-                if (this.CollectionChanged != null)
+                if (CollectionChanged != null)
                 {
                     var e = new NotifyCollectionChangedEventArgs(
                         NotifyCollectionChangedAction.Replace,
                         value,
                         old);
-                    this.CollectionChanged(this, e);
+                    CollectionChanged(this, e);
                 }
             }
         }
@@ -151,7 +151,7 @@ namespace Perspex.Collections
         {
             int index = _inner.Count;
             _inner.Add(item);
-            this.NotifyAdd(new[] { item }, index);
+            NotifyAdd(new[] { item }, index);
         }
 
         /// <summary>
@@ -164,7 +164,7 @@ namespace Perspex.Collections
 
             int index = _inner.Count;
             _inner.AddRange(items);
-            this.NotifyAdd((items as IList) ?? items.ToList(), index);
+            NotifyAdd((items as IList) ?? items.ToList(), index);
         }
 
         /// <summary>
@@ -174,7 +174,7 @@ namespace Perspex.Collections
         {
             var old = _inner;
             _inner = new List<T>();
-            this.NotifyRemove(old, 0);
+            NotifyRemove(old, 0);
         }
 
         /// <summary>
@@ -226,7 +226,7 @@ namespace Perspex.Collections
         public void Insert(int index, T item)
         {
             _inner.Insert(index, item);
-            this.NotifyAdd(new[] { item }, index);
+            NotifyAdd(new[] { item }, index);
         }
 
         /// <summary>
@@ -239,7 +239,7 @@ namespace Perspex.Collections
             Contract.Requires<ArgumentNullException>(items != null);
 
             _inner.InsertRange(index, items);
-            this.NotifyAdd((items as IList) ?? items.ToList(), index);
+            NotifyAdd((items as IList) ?? items.ToList(), index);
         }
 
         /// <summary>
@@ -254,7 +254,7 @@ namespace Perspex.Collections
             if (index != -1)
             {
                 _inner.RemoveAt(index);
-                this.NotifyRemove(new[] { item }, index);
+                NotifyRemove(new[] { item }, index);
                 return true;
             }
 
@@ -274,7 +274,7 @@ namespace Perspex.Collections
             foreach (var i in items)
             {
                 // TODO: Optimize to only send as many notifications as necessary.
-                this.Remove(i);
+                Remove(i);
             }
         }
 
@@ -286,51 +286,51 @@ namespace Perspex.Collections
         {
             T item = _inner[index];
             _inner.RemoveAt(index);
-            this.NotifyRemove(new[] { item }, index);
+            NotifyRemove(new[] { item }, index);
         }
 
         /// <inheritdoc/>
         int IList.Add(object value)
         {
-            int index = this.Count;
-            this.Add((T)value);
+            int index = Count;
+            Add((T)value);
             return index;
         }
 
         /// <inheritdoc/>
         bool IList.Contains(object value)
         {
-            return this.Contains((T)value);
+            return Contains((T)value);
         }
 
         /// <inheritdoc/>
         void IList.Clear()
         {
-            this.Clear();
+            Clear();
         }
 
         /// <inheritdoc/>
         int IList.IndexOf(object value)
         {
-            return this.IndexOf((T)value);
+            return IndexOf((T)value);
         }
 
         /// <inheritdoc/>
         void IList.Insert(int index, object value)
         {
-            this.Insert(index, (T)value);
+            Insert(index, (T)value);
         }
 
         /// <inheritdoc/>
         void IList.Remove(object value)
         {
-            this.Remove((T)value);
+            Remove((T)value);
         }
 
         /// <inheritdoc/>
         void IList.RemoveAt(int index)
         {
-            this.RemoveAt(index);
+            RemoveAt(index);
         }
 
         /// <inheritdoc/>
@@ -352,13 +352,13 @@ namespace Perspex.Collections
         /// <param name="index">The starting index.</param>
         private void NotifyAdd(IList t, int index)
         {
-            if (this.CollectionChanged != null)
+            if (CollectionChanged != null)
             {
                 var e = new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, t, index);
-                this.CollectionChanged(this, e);
+                CollectionChanged(this, e);
             }
 
-            this.NotifyCountChanged();
+            NotifyCountChanged();
         }
 
         /// <summary>
@@ -367,9 +367,9 @@ namespace Perspex.Collections
         /// </summary>
         private void NotifyCountChanged()
         {
-            if (this.PropertyChanged != null)
+            if (PropertyChanged != null)
             {
-                this.PropertyChanged(this, new PropertyChangedEventArgs("Count"));
+                PropertyChanged(this, new PropertyChangedEventArgs("Count"));
             }
         }
 
@@ -380,13 +380,13 @@ namespace Perspex.Collections
         /// <param name="index">The starting index.</param>
         private void NotifyRemove(IList t, int index)
         {
-            if (this.CollectionChanged != null)
+            if (CollectionChanged != null)
             {
                 var e = new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, t, index);
-                this.CollectionChanged(this, e);
+                CollectionChanged(this, e);
             }
 
-            this.NotifyCountChanged();
+            NotifyCountChanged();
         }
     }
 }

+ 4 - 4
src/Perspex.Base/Diagnostics/PerspexPropertyValue.cs

@@ -22,10 +22,10 @@ namespace Perspex.Diagnostics
             BindingPriority priority,
             string diagnostic)
         {
-            this.Property = property;
-            this.Value = value;
-            this.Priority = priority;
-            this.Diagnostic = diagnostic;
+            Property = property;
+            Value = value;
+            Priority = priority;
+            Diagnostic = diagnostic;
         }
 
         /// <summary>

+ 52 - 52
src/Perspex.Base/PerspexObject.cs

@@ -100,17 +100,17 @@ namespace Perspex
             _propertyLog = Log.ForContext(new[]
             {
                 new PropertyEnricher("Area", "Property"),
-                new PropertyEnricher("SourceContext", this.GetType()),
-                new PropertyEnricher("Id", this.GetHashCode()),
+                new PropertyEnricher("SourceContext", GetType()),
+                new PropertyEnricher("Id", GetHashCode()),
             });
 
-            foreach (var property in this.GetRegisteredProperties())
+            foreach (var property in GetRegisteredProperties())
             {
                 var e = new PerspexPropertyChangedEventArgs(
                     this,
                     property,
                     PerspexProperty.UnsetValue,
-                    property.GetDefaultValue(this.GetType()),
+                    property.GetDefaultValue(GetType()),
                     BindingPriority.Unset);
 
                 property.NotifyInitialized(e);
@@ -151,32 +151,32 @@ namespace Perspex
                 {
                     if (_inheritanceParent != null)
                     {
-                        _inheritanceParent.PropertyChanged -= this.ParentPropertyChanged;
+                        _inheritanceParent.PropertyChanged -= ParentPropertyChanged;
                     }
 
-                    var inherited = (from property in GetProperties(this.GetType())
+                    var inherited = (from property in GetProperties(GetType())
                                      where property.Inherits
                                      select new
                                      {
                                          Property = property,
-                                         Value = this.GetValue(property),
+                                         Value = GetValue(property),
                                      }).ToList();
 
                     _inheritanceParent = value;
 
                     foreach (var i in inherited)
                     {
-                        object newValue = this.GetValue(i.Property);
+                        object newValue = GetValue(i.Property);
 
-                        if (!object.Equals(i.Value, newValue))
+                        if (!Equals(i.Value, newValue))
                         {
-                            this.RaisePropertyChanged(i.Property, i.Value, newValue, BindingPriority.LocalValue);
+                            RaisePropertyChanged(i.Property, i.Value, newValue, BindingPriority.LocalValue);
                         }
                     }
 
                     if (_inheritanceParent != null)
                     {
-                        _inheritanceParent.PropertyChanged += this.ParentPropertyChanged;
+                        _inheritanceParent.PropertyChanged += ParentPropertyChanged;
                     }
                 }
             }
@@ -188,8 +188,8 @@ namespace Perspex
         /// <param name="property">The property.</param>
         public object this[PerspexProperty property]
         {
-            get { return this.GetValue(property); }
-            set { this.SetValue(property, value); }
+            get { return GetValue(property); }
+            set { SetValue(property, value); }
         }
 
         /// <summary>
@@ -225,16 +225,16 @@ namespace Perspex
                 {
                     case BindingMode.Default:
                     case BindingMode.OneWay:
-                        this.Bind(binding.Property, value, binding.Priority);
+                        Bind(binding.Property, value, binding.Priority);
                         break;
                     case BindingMode.OneTime:
-                        this.SetValue(binding.Property, sourceBinding.Source.GetValue(sourceBinding.Property), binding.Priority);
+                        SetValue(binding.Property, sourceBinding.Source.GetValue(sourceBinding.Property), binding.Priority);
                         break;
                     case BindingMode.OneWayToSource:
-                        sourceBinding.Source.Bind(sourceBinding.Property, this.GetObservable(binding.Property), binding.Priority);
+                        sourceBinding.Source.Bind(sourceBinding.Property, GetObservable(binding.Property), binding.Priority);
                         break;
                     case BindingMode.TwoWay:
-                        this.BindTwoWay(binding.Property, sourceBinding.Source, sourceBinding.Property);
+                        BindTwoWay(binding.Property, sourceBinding.Source, sourceBinding.Property);
                         break;
                 }
             }
@@ -303,7 +303,7 @@ namespace Perspex
         {
             Contract.Requires<NullReferenceException>(property != null);
 
-            this.SetValue(property, PerspexProperty.UnsetValue);
+            SetValue(property, PerspexProperty.UnsetValue);
         }
 
         /// <summary>
@@ -326,16 +326,16 @@ namespace Perspex
                         }
                     };
 
-                    observer.OnNext(this.GetValue(property));
+                    observer.OnNext(GetValue(property));
 
-                    this.PropertyChanged += handler;
+                    PropertyChanged += handler;
 
                     return Disposable.Create(() =>
                     {
-                        this.PropertyChanged -= handler;
+                        PropertyChanged -= handler;
                     });
                 },
-                this.GetObservableDescription(property));
+                GetObservableDescription(property));
         }
 
         /// <summary>
@@ -348,7 +348,7 @@ namespace Perspex
         {
             Contract.Requires<NullReferenceException>(property != null);
 
-            return this.GetObservable((PerspexProperty)property).Cast<T>();
+            return GetObservable((PerspexProperty)property).Cast<T>();
         }
 
         /// <summary>
@@ -371,14 +371,14 @@ namespace Perspex
                         }
                     };
 
-                    this.PropertyChanged += handler;
+                    PropertyChanged += handler;
 
                     return Disposable.Create(() =>
                     {
-                        this.PropertyChanged -= handler;
+                        PropertyChanged -= handler;
                     });
                 },
-                this.GetObservableDescription(property));
+                GetObservableDescription(property));
         }
 
         /// <summary>
@@ -405,7 +405,7 @@ namespace Perspex
 
             if (result == PerspexProperty.UnsetValue)
             {
-                result = this.GetDefaultValue(property);
+                result = GetDefaultValue(property);
             }
 
             return result;
@@ -421,7 +421,7 @@ namespace Perspex
         {
             Contract.Requires<NullReferenceException>(property != null);
 
-            return (T)this.GetValue((PerspexProperty)property);
+            return (T)GetValue((PerspexProperty)property);
         }
 
         /// <summary>
@@ -432,7 +432,7 @@ namespace Perspex
         /// </returns>
         public IEnumerable<PerspexProperty> GetRegisteredProperties()
         {
-            Type type = this.GetType();
+            Type type = GetType();
 
             while (type != null)
             {
@@ -469,7 +469,7 @@ namespace Perspex
         /// <returns>True if the property is registered, otherwise false.</returns>
         public bool IsRegistered(PerspexProperty property)
         {
-            Type type = this.GetType();
+            Type type = GetType();
 
             while (type != null)
             {
@@ -504,12 +504,12 @@ namespace Perspex
 
             PriorityValue v;
 
-            if (!this.IsRegistered(property))
+            if (!IsRegistered(property))
             {
                 throw new InvalidOperationException(string.Format(
                     "Property '{0}' not registered on '{1}'",
                     property.Name,
-                    this.GetType()));
+                    GetType()));
             }
 
             if (!TypeUtilities.TryCast(property.PropertyType, value, out value))
@@ -528,7 +528,7 @@ namespace Perspex
                     return;
                 }
 
-                v = this.CreatePriorityValue(property);
+                v = CreatePriorityValue(property);
                 _values.Add(property, v);
             }
 
@@ -554,7 +554,7 @@ namespace Perspex
         {
             Contract.Requires<NullReferenceException>(property != null);
 
-            this.SetValue((PerspexProperty)property, value, priority);
+            SetValue((PerspexProperty)property, value, priority);
         }
 
         /// <summary>
@@ -576,17 +576,17 @@ namespace Perspex
             PriorityValue v;
             IDescription description = source as IDescription;
 
-            if (!this.IsRegistered(property))
+            if (!IsRegistered(property))
             {
                 throw new InvalidOperationException(string.Format(
                     "Property '{0}' not registered on '{1}'",
                     property.Name,
-                    this.GetType()));
+                    GetType()));
             }
 
             if (!_values.TryGetValue(property, out v))
             {
-                v = this.CreatePriorityValue(property);
+                v = CreatePriorityValue(property);
                 _values.Add(property, v);
             }
 
@@ -616,7 +616,7 @@ namespace Perspex
         {
             Contract.Requires<NullReferenceException>(property != null);
 
-            return this.Bind((PerspexProperty)property, source.Select(x => (object)x), priority);
+            return Bind((PerspexProperty)property, source.Select(x => (object)x), priority);
         }
 
         /// <summary>
@@ -639,8 +639,8 @@ namespace Perspex
             BindingPriority priority = BindingPriority.LocalValue)
         {
             return new CompositeDisposable(
-                this.Bind(property, source.GetObservable(sourceProperty)),
-                source.Bind(sourceProperty, this.GetObservable(property)));
+                Bind(property, source.GetObservable(sourceProperty)),
+                source.Bind(sourceProperty, GetObservable(property)));
         }
 
         /// <summary>
@@ -697,7 +697,7 @@ namespace Perspex
         /// <returns>The <see cref="PriorityValue"/>.</returns>
         private PriorityValue CreatePriorityValue(PerspexProperty property)
         {
-            Func<PerspexObject, object, object> validate = property.GetValidationFunc(this.GetType());
+            Func<PerspexObject, object, object> validate = property.GetValidationFunc(GetType());
             Func<object, object> validate2 = null;
 
             if (validate != null)
@@ -710,15 +710,15 @@ namespace Perspex
             result.Changed.Subscribe(x =>
             {
                 object oldValue = (x.Item1 == PerspexProperty.UnsetValue) ?
-                    this.GetDefaultValue(property) :
+                    GetDefaultValue(property) :
                     x.Item1;
                 object newValue = (x.Item2 == PerspexProperty.UnsetValue) ?
-                    this.GetDefaultValue(property) :
+                    GetDefaultValue(property) :
                     x.Item2;
 
-                if (!object.Equals(oldValue, newValue))
+                if (!Equals(oldValue, newValue))
                 {
-                    this.RaisePropertyChanged(property, oldValue, newValue, (BindingPriority)result.ValuePriority);
+                    RaisePropertyChanged(property, oldValue, newValue, (BindingPriority)result.ValuePriority);
 
                     _propertyLog.Verbose(
                         "{Property} changed from {$Old} to {$Value} with priority {Priority}",
@@ -745,7 +745,7 @@ namespace Perspex
             }
             else
             {
-                return property.GetDefaultValue(this.GetType());
+                return property.GetDefaultValue(GetType());
             }
         }
 
@@ -761,9 +761,9 @@ namespace Perspex
         {
             Contract.Requires<ArgumentNullException>(e != null);
 
-            if (e.Property.Inherits && !this.IsSet(e.Property))
+            if (e.Property.Inherits && !IsSet(e.Property))
             {
-                this.RaisePropertyChanged(e.Property, e.OldValue, e.NewValue, BindingPriority.LocalValue);
+                RaisePropertyChanged(e.Property, e.OldValue, e.NewValue, BindingPriority.LocalValue);
             }
         }
 
@@ -774,7 +774,7 @@ namespace Perspex
         /// <returns>The description.</returns>
         private string GetObservableDescription(PerspexProperty property)
         {
-            return string.Format("{0}.{1}", this.GetType().Name, property.Name);
+            return string.Format("{0}.{1}", GetType().Name, property.Name);
         }
 
         /// <summary>
@@ -799,12 +799,12 @@ namespace Perspex
                 newValue,
                 priority);
 
-            this.OnPropertyChanged(e);
+            OnPropertyChanged(e);
             property.NotifyChanged(e);
 
-            if (this.PropertyChanged != null)
+            if (PropertyChanged != null)
             {
-                this.PropertyChanged(this, e);
+                PropertyChanged(this, e);
             }
 
             if (_inpcChanged != null)

+ 12 - 12
src/Perspex.Base/PerspexProperty.cs

@@ -68,13 +68,13 @@ namespace Perspex
             Contract.Requires<NullReferenceException>(valueType != null);
             Contract.Requires<NullReferenceException>(ownerType != null);
 
-            this.Name = name;
-            this.PropertyType = valueType;
-            this.OwnerType = ownerType;
+            Name = name;
+            PropertyType = valueType;
+            OwnerType = ownerType;
             _defaultValues.Add(ownerType, defaultValue);
-            this.Inherits = inherits;
-            this.DefaultBindingMode = defaultBindingMode;
-            this.IsAttached = isAttached;
+            Inherits = inherits;
+            DefaultBindingMode = defaultBindingMode;
+            IsAttached = isAttached;
 
             if (validate != null)
             {
@@ -335,7 +335,7 @@ namespace Perspex
                 type = type.GetTypeInfo().BaseType;
             }
 
-            return _defaultValues[this.OwnerType];
+            return _defaultValues[OwnerType];
         }
 
         /// <summary>
@@ -371,7 +371,7 @@ namespace Perspex
         /// <returns>True if the value is valid, otherwise false.</returns>
         public bool IsValidValue(object value)
         {
-            return TypeUtilities.TryCast(this.PropertyType, value, out value);
+            return TypeUtilities.TryCast(PropertyType, value, out value);
         }
 
         /// <summary>
@@ -381,7 +381,7 @@ namespace Perspex
         /// <param name="defaultValue">The default value.</param>
         public void OverrideDefaultValue<T>(object defaultValue)
         {
-            this.OverrideDefaultValue(typeof(T), defaultValue);
+            OverrideDefaultValue(typeof(T), defaultValue);
         }
 
         /// <summary>
@@ -393,11 +393,11 @@ namespace Perspex
         {
             Contract.Requires<NullReferenceException>(type != null);
 
-            if (!TypeUtilities.TryCast(this.PropertyType, defaultValue, out defaultValue))
+            if (!TypeUtilities.TryCast(PropertyType, defaultValue, out defaultValue))
             {
                 throw new InvalidOperationException(string.Format(
                     "Invalid value for Property '{0}': {1} ({2})",
-                    this.Name,
+                    Name,
                     defaultValue,
                     defaultValue.GetType().FullName));
             }
@@ -433,7 +433,7 @@ namespace Perspex
         /// <returns>The property's string representation.</returns>
         public override string ToString()
         {
-            return this.Name;
+            return Name;
         }
 
         /// <summary>

+ 5 - 5
src/Perspex.Base/PerspexPropertyChangedEventArgs.cs

@@ -23,11 +23,11 @@ namespace Perspex
             object newValue,
             BindingPriority priority)
         {
-            this.Sender = sender;
-            this.Property = property;
-            this.OldValue = oldValue;
-            this.NewValue = newValue;
-            this.Priority = priority;
+            Sender = sender;
+            Property = property;
+            OldValue = oldValue;
+            NewValue = newValue;
+            Priority = priority;
         }
 
         /// <summary>

+ 2 - 2
src/Perspex.Base/PerspexProperty`1.cs

@@ -61,7 +61,7 @@ namespace Perspex
         /// <returns>The default value.</returns>
         public TValue GetDefaultValue<T>()
         {
-            return (TValue)this.GetDefaultValue(typeof(T));
+            return (TValue)GetDefaultValue(typeof(T));
         }
 
         /// <summary>
@@ -74,7 +74,7 @@ namespace Perspex
             var f = validation != null ?
                 (o, v) => validation((T)o, (TValue)v) :
                 (Func<PerspexObject, object, object>)null;
-            this.OverrideValidation(typeof(T), f);
+            OverrideValidation(typeof(T), f);
         }
 
         /// <summary>

+ 2 - 2
src/Perspex.Base/Platform/PlatformHandle.cs

@@ -19,8 +19,8 @@ namespace Perspex.Platform
         /// </param>
         public PlatformHandle(IntPtr handle, string descriptor)
         {
-            this.Handle = handle;
-            this.HandleDescriptor = descriptor;
+            Handle = handle;
+            HandleDescriptor = descriptor;
         }
 
         /// <summary>

+ 5 - 5
src/Perspex.Base/PriorityBindingEntry.cs

@@ -23,7 +23,7 @@ namespace Perspex
         /// </param>
         public PriorityBindingEntry(int index)
         {
-            this.Index = index;
+            Index = index;
         }
 
         /// <summary>
@@ -77,18 +77,18 @@ namespace Perspex
                 throw new Exception("PriorityValue.Entry.Start() called more than once.");
             }
 
-            this.Observable = binding;
-            this.Value = PerspexProperty.UnsetValue;
+            Observable = binding;
+            Value = PerspexProperty.UnsetValue;
 
             if (binding is IDescription)
             {
-                this.Description = ((IDescription)binding).Description;
+                Description = ((IDescription)binding).Description;
             }
 
             _subscription = binding.Subscribe(
                 value =>
                 {
-                    this.Value = value;
+                    Value = value;
                     changed(this);
                 },
                 () => completed(this));

+ 22 - 22
src/Perspex.Base/PriorityLevel.cs

@@ -79,10 +79,10 @@ namespace Perspex
 
             _mode = mode;
             _changed = changed;
-            this.Priority = priority;
-            this.Value = _directValue = PerspexProperty.UnsetValue;
-            this.ActiveBindingIndex = -1;
-            this.Bindings = new LinkedList<PriorityBindingEntry>();
+            Priority = priority;
+            Value = _directValue = PerspexProperty.UnsetValue;
+            ActiveBindingIndex = -1;
+            Bindings = new LinkedList<PriorityBindingEntry>();
         }
 
         /// <summary>
@@ -102,7 +102,7 @@ namespace Perspex
 
             set
             {
-                this.Value = _directValue = value;
+                Value = _directValue = value;
                 _changed(this);
             }
         }
@@ -133,17 +133,17 @@ namespace Perspex
             Contract.Requires<ArgumentNullException>(binding != null);
 
             var entry = new PriorityBindingEntry(_nextIndex++);
-            var node = this.Bindings.AddFirst(entry);
+            var node = Bindings.AddFirst(entry);
 
-            entry.Start(binding, this.Changed, this.Completed);
+            entry.Start(binding, Changed, Completed);
 
             return Disposable.Create(() =>
             {
-                this.Bindings.Remove(node);
+                Bindings.Remove(node);
 
-                if (entry.Index >= this.ActiveBindingIndex)
+                if (entry.Index >= ActiveBindingIndex)
                 {
-                    this.ActivateFirstBinding();
+                    ActivateFirstBinding();
                 }
             });
         }
@@ -154,17 +154,17 @@ namespace Perspex
         /// <param name="entry">The entry that changed.</param>
         private void Changed(PriorityBindingEntry entry)
         {
-            if (_mode == LevelPrecedenceMode.Latest || entry.Index >= this.ActiveBindingIndex)
+            if (_mode == LevelPrecedenceMode.Latest || entry.Index >= ActiveBindingIndex)
             {
                 if (entry.Value != PerspexProperty.UnsetValue)
                 {
-                    this.Value = entry.Value;
-                    this.ActiveBindingIndex = entry.Index;
+                    Value = entry.Value;
+                    ActiveBindingIndex = entry.Index;
                     _changed(this);
                 }
                 else
                 {
-                    this.ActivateFirstBinding();
+                    ActivateFirstBinding();
                 }
             }
         }
@@ -175,11 +175,11 @@ namespace Perspex
         /// <param name="entry">The entry that completed.</param>
         private void Completed(PriorityBindingEntry entry)
         {
-            this.Bindings.Remove(entry);
+            Bindings.Remove(entry);
 
-            if (entry.Index >= this.ActiveBindingIndex)
+            if (entry.Index >= ActiveBindingIndex)
             {
-                this.ActivateFirstBinding();
+                ActivateFirstBinding();
             }
         }
 
@@ -188,19 +188,19 @@ namespace Perspex
         /// </summary>
         private void ActivateFirstBinding()
         {
-            foreach (var binding in this.Bindings)
+            foreach (var binding in Bindings)
             {
                 if (binding.Value != PerspexProperty.UnsetValue)
                 {
-                    this.Value = binding.Value;
-                    this.ActiveBindingIndex = binding.Index;
+                    Value = binding.Value;
+                    ActiveBindingIndex = binding.Index;
                     _changed(this);
                     return;
                 }
             }
 
-            this.Value = this.DirectValue;
-            this.ActiveBindingIndex = -1;
+            Value = DirectValue;
+            ActiveBindingIndex = -1;
             _changed(this);
         }
     }

+ 12 - 12
src/Perspex.Base/PriorityValue.cs

@@ -65,7 +65,7 @@ namespace Perspex
             _name = name;
             _valueType = valueType;
             _value = PerspexProperty.UnsetValue;
-            this.ValuePriority = int.MaxValue;
+            ValuePriority = int.MaxValue;
             _validate = validate;
         }
 
@@ -107,7 +107,7 @@ namespace Perspex
         /// </returns>
         public IDisposable Add(IObservable<object> binding, int priority)
         {
-            return this.GetLevel(priority).Add(binding);
+            return GetLevel(priority).Add(binding);
         }
 
         /// <summary>
@@ -117,7 +117,7 @@ namespace Perspex
         /// <param name="priority">The priority</param>
         public void SetDirectValue(object value, int priority)
         {
-            this.GetLevel(priority).DirectValue = value;
+            GetLevel(priority).DirectValue = value;
         }
 
         /// <summary>
@@ -152,7 +152,7 @@ namespace Perspex
                     b.AppendLine();
                 }
 
-                b.Append(this.ValuePriority == level.Key ? "*" : string.Empty);
+                b.Append(ValuePriority == level.Key ? "*" : string.Empty);
                 b.Append("Priority ");
                 b.Append(level.Key);
                 b.Append(": ");
@@ -184,9 +184,9 @@ namespace Perspex
             {
                 PriorityLevel level;
 
-                if (_levels.TryGetValue(this.ValuePriority, out level))
+                if (_levels.TryGetValue(ValuePriority, out level))
                 {
-                    this.UpdateValue(level.Value, level.Priority);
+                    UpdateValue(level.Value, level.Priority);
                 }
             }
         }
@@ -204,7 +204,7 @@ namespace Perspex
             if (!_levels.TryGetValue(priority, out result))
             {
                 var mode = (LevelPrecedenceMode)(priority % 2);
-                result = new PriorityLevel(priority, mode, this.ValueChanged);
+                result = new PriorityLevel(priority, mode, ValueChanged);
                 _levels.Add(priority, result);
             }
 
@@ -234,7 +234,7 @@ namespace Perspex
                 value = _validate(value);
             }
 
-            this.ValuePriority = priority;
+            ValuePriority = priority;
             _value = value;
             _changed.OnNext(Tuple.Create(old, _value));
         }
@@ -245,11 +245,11 @@ namespace Perspex
         /// <param name="level">The priority level of the changed entry.</param>
         private void ValueChanged(PriorityLevel level)
         {
-            if (level.Priority <= this.ValuePriority)
+            if (level.Priority <= ValuePriority)
             {
                 if (level.Value != PerspexProperty.UnsetValue)
                 {
-                    this.UpdateValue(level.Value, level.Priority);
+                    UpdateValue(level.Value, level.Priority);
                 }
                 else
                 {
@@ -257,12 +257,12 @@ namespace Perspex
                     {
                         if (i.Value != PerspexProperty.UnsetValue)
                         {
-                            this.UpdateValue(i.Value, i.Priority);
+                            UpdateValue(i.Value, i.Priority);
                             return;
                         }
                     }
 
-                    this.UpdateValue(PerspexProperty.UnsetValue, int.MaxValue);
+                    UpdateValue(PerspexProperty.UnsetValue, int.MaxValue);
                 }
             }
         }

+ 1 - 1
src/Perspex.Base/Reactive/PerspexObservable.cs

@@ -28,7 +28,7 @@ namespace Perspex.Reactive
             }
 
             _subscribe = subscribe;
-            this.Description = description;
+            Description = description;
         }
 
         /// <summary>

+ 20 - 22
src/Perspex.Base/Threading/DispatcherTimer.cs

@@ -25,7 +25,7 @@ namespace Perspex.Threading
         public DispatcherTimer()
         {
             _priority = DispatcherPriority.Normal;
-            this.Dispatcher = Dispatcher.UIThread;
+            Dispatcher = Dispatcher.UIThread;
         }
 
         /// <summary>
@@ -35,7 +35,7 @@ namespace Perspex.Threading
         public DispatcherTimer(DispatcherPriority priority)
         {
             _priority = priority;
-            this.Dispatcher = Dispatcher.UIThread;
+            Dispatcher = Dispatcher.UIThread;
         }
 
         /// <summary>
@@ -46,7 +46,7 @@ namespace Perspex.Threading
         public DispatcherTimer(DispatcherPriority priority, Dispatcher dispatcher)
         {
             _priority = priority;
-            this.Dispatcher = dispatcher;
+            Dispatcher = dispatcher;
         }
 
         /// <summary>
@@ -59,9 +59,9 @@ namespace Perspex.Threading
         public DispatcherTimer(TimeSpan interval, DispatcherPriority priority, EventHandler callback, Dispatcher dispatcher)
         {
             _priority = priority;
-            this.Dispatcher = dispatcher;
-            this.Interval = interval;
-            this.Tick += callback;
+            Dispatcher = dispatcher;
+            Interval = interval;
+            Tick += callback;
         }
 
         /// <summary>
@@ -71,7 +71,7 @@ namespace Perspex.Threading
         {
             if (_timer != null)
             {
-                this.Stop();
+                Stop();
             }
         }
 
@@ -85,9 +85,7 @@ namespace Perspex.Threading
         /// </summary>
         public Dispatcher Dispatcher
         {
-            get;
-            private set;
-        }
+            get; }
 
         /// <summary>
         /// Gets or sets the interval at which the timer ticks.
@@ -101,10 +99,10 @@ namespace Perspex.Threading
 
             set
             {
-                bool enabled = this.IsEnabled;
-                this.Stop();
+                bool enabled = IsEnabled;
+                Stop();
                 _interval = value;
-                this.IsEnabled = enabled;
+                IsEnabled = enabled;
             }
         }
 
@@ -120,15 +118,15 @@ namespace Perspex.Threading
 
             set
             {
-                if (this.IsEnabled != value)
+                if (IsEnabled != value)
                 {
                     if (value)
                     {
-                        this.Start();
+                        Start();
                     }
                     else
                     {
-                        this.Stop();
+                        Stop();
                     }
                 }
             }
@@ -175,10 +173,10 @@ namespace Perspex.Threading
         /// </summary>
         public void Start()
         {
-            if (!this.IsEnabled)
+            if (!IsEnabled)
             {
                 IPlatformThreadingInterface threading = Locator.Current.GetService<IPlatformThreadingInterface>();
-                _timer = threading.StartTimer(this.Interval, this.InternalTick);
+                _timer = threading.StartTimer(Interval, InternalTick);
             }
         }
 
@@ -187,7 +185,7 @@ namespace Perspex.Threading
         /// </summary>
         public void Stop()
         {
-            if (this.IsEnabled)
+            if (IsEnabled)
             {
                 IPlatformThreadingInterface threading = Locator.Current.GetService<IPlatformThreadingInterface>();
                 _timer.Dispose();
@@ -200,7 +198,7 @@ namespace Perspex.Threading
         /// </summary>
         private void InternalTick()
         {
-            this.Dispatcher.Post(this.RaiseTick, _priority);
+            Dispatcher.Post(RaiseTick, _priority);
         }
 
         /// <summary>
@@ -208,9 +206,9 @@ namespace Perspex.Threading
         /// </summary>
         private void RaiseTick()
         {
-            if (this.Tick != null)
+            if (Tick != null)
             {
-                this.Tick(this, EventArgs.Empty);
+                Tick(this, EventArgs.Empty);
             }
         }
     }

+ 5 - 5
src/Perspex.Base/Threading/MainLoop.cs

@@ -97,7 +97,7 @@ namespace Perspex.Win32.Threading
         public Task InvokeAsync(Action action, DispatcherPriority priority)
         {
             var job = new Job(action, priority, false);
-            this.AddJob(job);
+            AddJob(job);
             return job.TaskCompletionSource.Task;
         }
 
@@ -109,7 +109,7 @@ namespace Perspex.Win32.Threading
         /// <param name="priority">The priority with which to invoke the method.</param>
         internal void Post(Action action, DispatcherPriority priority)
         {
-            this.AddJob(new Job(action, priority, true));
+            AddJob(new Job(action, priority, true));
         }
 
         private void AddJob(Job job)
@@ -134,9 +134,9 @@ namespace Perspex.Win32.Threading
             /// <param name="throwOnUiThread">Do not wrap excepption in TaskCompletionSource</param>
             public Job(Action action, DispatcherPriority priority, bool throwOnUiThread)
             {
-                this.Action = action;
-                this.Priority = priority;
-                this.TaskCompletionSource = throwOnUiThread ? null : new TaskCompletionSource<object>();
+                Action = action;
+                Priority = priority;
+                TaskCompletionSource = throwOnUiThread ? null : new TaskCompletionSource<object>();
             }
 
             /// <summary>

+ 19 - 19
src/Perspex.Controls/Border.cs

@@ -39,8 +39,8 @@ namespace Perspex.Controls
         /// </summary>
         static Border()
         {
-            Control.AffectsRender(Border.BackgroundProperty);
-            Control.AffectsRender(Border.BorderBrushProperty);
+            AffectsRender(BackgroundProperty);
+            AffectsRender(BorderBrushProperty);
         }
 
         /// <summary>
@@ -48,8 +48,8 @@ namespace Perspex.Controls
         /// </summary>
         public Brush Background
         {
-            get { return this.GetValue(BackgroundProperty); }
-            set { this.SetValue(BackgroundProperty, value); }
+            get { return GetValue(BackgroundProperty); }
+            set { SetValue(BackgroundProperty, value); }
         }
 
         /// <summary>
@@ -57,8 +57,8 @@ namespace Perspex.Controls
         /// </summary>
         public Brush BorderBrush
         {
-            get { return this.GetValue(BorderBrushProperty); }
-            set { this.SetValue(BorderBrushProperty, value); }
+            get { return GetValue(BorderBrushProperty); }
+            set { SetValue(BorderBrushProperty, value); }
         }
 
         /// <summary>
@@ -66,8 +66,8 @@ namespace Perspex.Controls
         /// </summary>
         public double BorderThickness
         {
-            get { return this.GetValue(BorderThicknessProperty); }
-            set { this.SetValue(BorderThicknessProperty, value); }
+            get { return GetValue(BorderThicknessProperty); }
+            set { SetValue(BorderThicknessProperty, value); }
         }
 
         /// <summary>
@@ -75,8 +75,8 @@ namespace Perspex.Controls
         /// </summary>
         public float CornerRadius
         {
-            get { return this.GetValue(CornerRadiusProperty); }
-            set { this.SetValue(CornerRadiusProperty, value); }
+            get { return GetValue(CornerRadiusProperty); }
+            set { SetValue(CornerRadiusProperty, value); }
         }
 
         /// <summary>
@@ -85,11 +85,11 @@ namespace Perspex.Controls
         /// <param name="context">The drawing context.</param>
         public override void Render(IDrawingContext context)
         {
-            var background = this.Background;
-            var borderBrush = this.BorderBrush;
-            var borderThickness = this.BorderThickness;
-            var cornerRadius = this.CornerRadius;
-            var rect = new Rect(this.Bounds.Size).Deflate(this.BorderThickness);
+            var background = Background;
+            var borderBrush = BorderBrush;
+            var borderThickness = BorderThickness;
+            var cornerRadius = CornerRadius;
+            var rect = new Rect(Bounds.Size).Deflate(BorderThickness);
 
             if (background != null)
             {
@@ -109,8 +109,8 @@ namespace Perspex.Controls
         /// <returns>The desired size of the control.</returns>
         protected override Size MeasureOverride(Size availableSize)
         {
-            var child = this.Child;
-            var padding = this.Padding + new Thickness(this.BorderThickness);
+            var child = Child;
+            var padding = Padding + new Thickness(BorderThickness);
 
             if (child != null)
             {
@@ -130,11 +130,11 @@ namespace Perspex.Controls
         /// <returns>The space taken.</returns>
         protected override Size ArrangeOverride(Size finalSize)
         {
-            var child = this.Child;
+            var child = Child;
 
             if (child != null)
             {
-                var padding = this.Padding + new Thickness(this.BorderThickness);
+                var padding = Padding + new Thickness(BorderThickness);
                 child.Arrange(new Rect(finalSize).Deflate(padding));
             }
 

+ 33 - 33
src/Perspex.Controls/Button.cs

@@ -78,8 +78,8 @@ namespace Perspex.Controls
         /// </summary>
         public event EventHandler<RoutedEventArgs> Click
         {
-            add { this.AddHandler(ClickEvent, value); }
-            remove { this.RemoveHandler(ClickEvent, value); }
+            add { AddHandler(ClickEvent, value); }
+            remove { RemoveHandler(ClickEvent, value); }
         }
 
         /// <summary>
@@ -87,8 +87,8 @@ namespace Perspex.Controls
         /// </summary>
         public ClickMode ClickMode
         {
-            get { return this.GetValue(ClickModeProperty); }
-            set { this.SetValue(ClickModeProperty, value); }
+            get { return GetValue(ClickModeProperty); }
+            set { SetValue(ClickModeProperty, value); }
         }
 
         /// <summary>
@@ -96,8 +96,8 @@ namespace Perspex.Controls
         /// </summary>
         public ICommand Command
         {
-            get { return this.GetValue(CommandProperty); }
-            set { this.SetValue(CommandProperty, value); }
+            get { return GetValue(CommandProperty); }
+            set { SetValue(CommandProperty, value); }
         }
 
         /// <summary>
@@ -105,8 +105,8 @@ namespace Perspex.Controls
         /// </summary>
         public object CommandParameter
         {
-            get { return this.GetValue(CommandParameterProperty); }
-            set { this.SetValue(CommandParameterProperty, value); }
+            get { return GetValue(CommandParameterProperty); }
+            set { SetValue(CommandParameterProperty, value); }
         }
 
         /// <summary>
@@ -115,8 +115,8 @@ namespace Perspex.Controls
         /// </summary>
         public bool IsDefault
         {
-            get { return this.GetValue(IsDefaultProperty); }
-            set { this.SetValue(IsDefaultProperty, value); }
+            get { return GetValue(IsDefaultProperty); }
+            set { SetValue(IsDefaultProperty, value); }
         }
 
         /// <inheritdoc/>
@@ -136,13 +136,13 @@ namespace Perspex.Controls
         {
             base.OnAttachedToVisualTree(root);
 
-            if (this.IsDefault)
+            if (IsDefault)
             {
                 var inputElement = root as IInputElement;
 
                 if (inputElement != null)
                 {
-                    this.ListenForDefault(inputElement);
+                    ListenForDefault(inputElement);
                 }
             }
         }
@@ -152,14 +152,14 @@ namespace Perspex.Controls
         {
             if (e.Key == Key.Enter)
             {
-                this.RaiseClickEvent();
+                RaiseClickEvent();
                 e.Handled = true;
             }
             else if (e.Key == Key.Space)
             {
-                if (this.ClickMode == ClickMode.Press)
+                if (ClickMode == ClickMode.Press)
                 {
-                    this.RaiseClickEvent();
+                    RaiseClickEvent();
                 }
 
                 e.Handled = true;
@@ -173,9 +173,9 @@ namespace Perspex.Controls
         {
             if (e.Key == Key.Space)
             {
-                if (this.ClickMode == ClickMode.Release)
+                if (ClickMode == ClickMode.Release)
                 {
-                    this.RaiseClickEvent();
+                    RaiseClickEvent();
                 }
 
                 e.Handled = true;
@@ -187,13 +187,13 @@ namespace Perspex.Controls
         {
             base.OnDetachedFromVisualTree(oldRoot);
 
-            if (this.IsDefault)
+            if (IsDefault)
             {
                 var inputElement = oldRoot as IInputElement;
 
                 if (inputElement != null)
                 {
-                    this.StopListeningForDefault(inputElement);
+                    StopListeningForDefault(inputElement);
                 }
             }
         }
@@ -204,9 +204,9 @@ namespace Perspex.Controls
         /// <param name="e">The event args.</param>
         protected virtual void OnClick(RoutedEventArgs e)
         {
-            if (this.Command != null)
+            if (Command != null)
             {
-                this.Command.Execute(this.CommandParameter);
+                Command.Execute(CommandParameter);
             }
         }
 
@@ -215,13 +215,13 @@ namespace Perspex.Controls
         {
             base.OnPointerPressed(e);
 
-            this.Classes.Add(":pressed");
+            Classes.Add(":pressed");
             e.Device.Capture(this);
             e.Handled = true;
 
-            if (this.ClickMode == ClickMode.Press)
+            if (ClickMode == ClickMode.Press)
             {
-                this.RaiseClickEvent();
+                RaiseClickEvent();
             }
         }
 
@@ -231,12 +231,12 @@ namespace Perspex.Controls
             base.OnPointerReleased(e);
 
             e.Device.Capture(null);
-            this.Classes.Remove(":pressed");
+            Classes.Remove(":pressed");
             e.Handled = true;
 
-            if (this.ClickMode == ClickMode.Release && this.Classes.Contains(":pointerover"))
+            if (ClickMode == ClickMode.Release && Classes.Contains(":pointerover"))
             {
-                this.RaiseClickEvent();
+                RaiseClickEvent();
             }
         }
 
@@ -300,7 +300,7 @@ namespace Perspex.Controls
         {
             // HACK: Just set the IsEnabled property for the moment. This needs to be changed to
             // use IsEnabledCore etc. but it will do for now.
-            this.IsEnabled = this.Command == null || this.Command.CanExecute(this.CommandParameter);
+            IsEnabled = Command == null || Command.CanExecute(CommandParameter);
         }
 
         /// <summary>
@@ -309,7 +309,7 @@ namespace Perspex.Controls
         /// <param name="root">The input root.</param>
         private void ListenForDefault(IInputElement root)
         {
-            root.AddHandler(InputElement.KeyDownEvent, this.RootKeyDown);
+            root.AddHandler(KeyDownEvent, RootKeyDown);
         }
 
         /// <summary>
@@ -318,7 +318,7 @@ namespace Perspex.Controls
         /// <param name="root">The input root.</param>
         private void StopListeningForDefault(IInputElement root)
         {
-            root.RemoveHandler(InputElement.KeyDownEvent, this.RootKeyDown);
+            root.RemoveHandler(KeyDownEvent, RootKeyDown);
         }
 
         /// <summary>
@@ -331,7 +331,7 @@ namespace Perspex.Controls
                 RoutedEvent = ClickEvent,
             };
 
-            this.RaiseEvent(click);
+            RaiseEvent(click);
         }
 
         /// <summary>
@@ -341,9 +341,9 @@ namespace Perspex.Controls
         /// <param name="e">The event args.</param>
         private void RootKeyDown(object sender, KeyEventArgs e)
         {
-            if (e.Key == Key.Enter && this.IsVisible && this.IsEnabled)
+            if (e.Key == Key.Enter && IsVisible && IsEnabled)
             {
-                this.RaiseClickEvent();
+                RaiseClickEvent();
             }
         }
     }

+ 8 - 8
src/Perspex.Controls/ColumnDefinition.cs

@@ -40,7 +40,7 @@ namespace Perspex.Controls
         /// <param name="type">The width unit of the column.</param>
         public ColumnDefinition(double value, GridUnitType type)
         {
-            this.Width = new GridLength(value, type);
+            Width = new GridLength(value, type);
         }
 
         /// <summary>
@@ -49,7 +49,7 @@ namespace Perspex.Controls
         /// <param name="width">The width of the column.</param>
         public ColumnDefinition(GridLength width)
         {
-            this.Width = width;
+            Width = width;
         }
 
         /// <summary>
@@ -66,8 +66,8 @@ namespace Perspex.Controls
         /// </summary>
         public double MaxWidth
         {
-            get { return this.GetValue(MaxWidthProperty); }
-            set { this.SetValue(MaxWidthProperty, value); }
+            get { return GetValue(MaxWidthProperty); }
+            set { SetValue(MaxWidthProperty, value); }
         }
 
         /// <summary>
@@ -75,8 +75,8 @@ namespace Perspex.Controls
         /// </summary>
         public double MinWidth
         {
-            get { return this.GetValue(MinWidthProperty); }
-            set { this.SetValue(MinWidthProperty, value); }
+            get { return GetValue(MinWidthProperty); }
+            set { SetValue(MinWidthProperty, value); }
         }
 
         /// <summary>
@@ -84,8 +84,8 @@ namespace Perspex.Controls
         /// </summary>
         public GridLength Width
         {
-            get { return this.GetValue(WidthProperty); }
-            set { this.SetValue(WidthProperty, value); }
+            get { return GetValue(WidthProperty); }
+            set { SetValue(WidthProperty, value); }
         }
     }
 }

+ 1 - 1
src/Perspex.Controls/ColumnDefinitions.cs

@@ -24,7 +24,7 @@ namespace Perspex.Controls
         /// <param name="s">A string representation of the column definitions.</param>
         public ColumnDefinitions(string s)
         {
-            this.AddRange(GridLength.ParseLengths(s).Select(x => new ColumnDefinition(x)));
+            AddRange(GridLength.ParseLengths(s).Select(x => new ColumnDefinition(x)));
         }
     }
 }

+ 8 - 8
src/Perspex.Controls/ContentControl.cs

@@ -45,8 +45,8 @@ namespace Perspex.Controls
         /// </summary>
         public object Content
         {
-            get { return this.GetValue(ContentProperty); }
-            set { this.SetValue(ContentProperty, value); }
+            get { return GetValue(ContentProperty); }
+            set { SetValue(ContentProperty, value); }
         }
 
         /// <summary>
@@ -63,8 +63,8 @@ namespace Perspex.Controls
         /// </summary>
         public HorizontalAlignment HorizontalContentAlignment
         {
-            get { return this.GetValue(HorizontalContentAlignmentProperty); }
-            set { this.SetValue(HorizontalContentAlignmentProperty, value); }
+            get { return GetValue(HorizontalContentAlignmentProperty); }
+            set { SetValue(HorizontalContentAlignmentProperty, value); }
         }
 
         /// <summary>
@@ -72,14 +72,14 @@ namespace Perspex.Controls
         /// </summary>
         public VerticalAlignment VerticalContentAlignment
         {
-            get { return this.GetValue(VerticalContentAlignmentProperty); }
-            set { this.SetValue(VerticalContentAlignmentProperty, value); }
+            get { return GetValue(VerticalContentAlignmentProperty); }
+            set { SetValue(VerticalContentAlignmentProperty, value); }
         }
 
         /// <summary>
         /// Gets a writeable logical children collection from the host.
         /// </summary>
-        IPerspexList<ILogical> IReparentingHost.LogicalChildren => this.LogicalChildren;
+        IPerspexList<ILogical> IReparentingHost.LogicalChildren => LogicalChildren;
 
         /// <summary>
         /// Asks the control whether it wants to reparent the logical children of the specified
@@ -100,7 +100,7 @@ namespace Perspex.Controls
             // We allow ContentControls without ContentPresenters in the template. This can be
             // useful for e.g. a simple ToggleButton that displays an image. There's no need to
             // have a ContentPresenter in the visual tree for that.
-            this.Presenter = this.FindTemplateChild<ContentPresenter>("contentPresenter");
+            Presenter = this.FindTemplateChild<ContentPresenter>("contentPresenter");
         }
     }
 }

+ 20 - 20
src/Perspex.Controls/Control.cs

@@ -84,10 +84,10 @@ namespace Perspex.Controls
         /// </summary>
         static Control()
         {
-            Control.AffectsMeasure(Control.IsVisibleProperty);
-            PseudoClass(InputElement.IsEnabledCoreProperty, x => !x, ":disabled");
-            PseudoClass(InputElement.IsFocusedProperty, ":focus");
-            PseudoClass(InputElement.IsPointerOverProperty, ":pointerover");
+            AffectsMeasure(IsVisibleProperty);
+            PseudoClass(IsEnabledCoreProperty, x => !x, ":disabled");
+            PseudoClass(IsFocusedProperty, ":focus");
+            PseudoClass(IsPointerOverProperty, ":pointerover");
         }
 
         /// <summary>
@@ -131,8 +131,8 @@ namespace Perspex.Controls
         /// </remarks>
         public object DataContext
         {
-            get { return this.GetValue(DataContextProperty); }
-            set { this.SetValue(DataContextProperty, value); }
+            get { return GetValue(DataContextProperty); }
+            set { SetValue(DataContextProperty, value); }
         }
 
         /// <summary>
@@ -140,8 +140,8 @@ namespace Perspex.Controls
         /// </summary>
         public ITemplate<IControl> FocusAdorner
         {
-            get { return this.GetValue(FocusAdornerProperty); }
-            set { this.SetValue(FocusAdornerProperty, value); }
+            get { return GetValue(FocusAdornerProperty); }
+            set { SetValue(FocusAdornerProperty, value); }
         }
 
         /// <summary>
@@ -230,7 +230,7 @@ namespace Perspex.Controls
         /// </summary>
         public IControl Parent
         {
-            get { return this.GetValue(ParentProperty); }
+            get { return GetValue(ParentProperty); }
         }
 
         /// <summary>
@@ -238,8 +238,8 @@ namespace Perspex.Controls
         /// </summary>
         public object Tag
         {
-            get { return this.GetValue(TagProperty); }
-            set { this.SetValue(TagProperty, value); }
+            get { return GetValue(TagProperty); }
+            set { SetValue(TagProperty, value); }
         }
 
         /// <summary>
@@ -247,8 +247,8 @@ namespace Perspex.Controls
         /// </summary>
         public ITemplatedControl TemplatedParent
         {
-            get { return this.GetValue(TemplatedParentProperty); }
-            internal set { this.SetValue(TemplatedParentProperty, value); }
+            get { return GetValue(TemplatedParentProperty); }
+            internal set { SetValue(TemplatedParentProperty, value); }
         }
 
         /// <summary>
@@ -256,7 +256,7 @@ namespace Perspex.Controls
         /// </summary>
         ILogical ILogical.LogicalParent
         {
-            get { return this.Parent; }
+            get { return Parent; }
         }
 
         /// <summary>
@@ -264,7 +264,7 @@ namespace Perspex.Controls
         /// </summary>
         IPerspexReadOnlyList<ILogical> ILogical.LogicalChildren
         {
-            get { return this.LogicalChildren; }
+            get { return LogicalChildren; }
         }
 
         /// <summary>
@@ -278,7 +278,7 @@ namespace Perspex.Controls
         /// </remarks>
         Type IStyleable.StyleKey
         {
-            get { return this.GetType(); }
+            get { return GetType(); }
         }
 
         /// <summary>
@@ -303,14 +303,14 @@ namespace Perspex.Controls
         /// <param name="parent">The parent.</param>
         void ISetLogicalParent.SetParent(ILogical parent)
         {
-            var old = this.Parent;
+            var old = Parent;
 
             if (old != null && parent != null)
             {
                 throw new InvalidOperationException("The Control already has a parent.");
             }
 
-            this.SetValue(ParentProperty, parent);
+            SetValue(ParentProperty, parent);
         }
 
         /// <summary>
@@ -364,7 +364,7 @@ namespace Perspex.Controls
         {
             base.OnGotFocus(e);
 
-            if (this.IsFocused &&
+            if (IsFocused &&
                 (e.NavigationMethod == NavigationMethod.Tab ||
                  e.NavigationMethod == NavigationMethod.Directional))
             {
@@ -374,7 +374,7 @@ namespace Perspex.Controls
                 {
                     if (_focusAdorner == null)
                     {
-                        var template = this.GetValue(FocusAdornerProperty);
+                        var template = GetValue(FocusAdornerProperty);
 
                         if (template != null)
                         {

+ 2 - 2
src/Perspex.Controls/Deck.cs

@@ -40,8 +40,8 @@ namespace Perspex.Controls
         /// </summary>
         public IPageTransition Transition
         {
-            get { return this.GetValue(TransitionProperty); }
-            set { this.SetValue(TransitionProperty, value); }
+            get { return GetValue(TransitionProperty); }
+            set { SetValue(TransitionProperty, value); }
         }
 
         /// <inheritdoc/>

+ 12 - 12
src/Perspex.Controls/Decorator.cs

@@ -35,8 +35,8 @@ namespace Perspex.Controls
         /// </summary>
         public Control Child
         {
-            get { return this.GetValue(ChildProperty); }
-            set { this.SetValue(ChildProperty, value); }
+            get { return GetValue(ChildProperty); }
+            set { SetValue(ChildProperty, value); }
         }
 
         /// <summary>
@@ -44,15 +44,15 @@ namespace Perspex.Controls
         /// </summary>
         public Thickness Padding
         {
-            get { return this.GetValue(PaddingProperty); }
-            set { this.SetValue(PaddingProperty, value); }
+            get { return GetValue(PaddingProperty); }
+            set { SetValue(PaddingProperty, value); }
         }
 
         /// <inheritdoc/>
         protected override Size MeasureOverride(Size availableSize)
         {
-            var content = this.Child;
-            var padding = this.Padding;
+            var content = Child;
+            var padding = Padding;
 
             if (content != null)
             {
@@ -68,11 +68,11 @@ namespace Perspex.Controls
         /// <inheritdoc/>
         protected override Size ArrangeOverride(Size finalSize)
         {
-            Control content = this.Child;
+            Control content = Child;
 
             if (content != null)
             {
-                content.Arrange(new Rect(finalSize).Deflate(this.Padding));
+                content.Arrange(new Rect(finalSize).Deflate(Padding));
             }
 
             return finalSize;
@@ -90,14 +90,14 @@ namespace Perspex.Controls
             if (oldChild != null)
             {
                 ((ISetLogicalParent)oldChild).SetParent(null);
-                this.LogicalChildren.Clear();
-                this.RemoveVisualChild(oldChild);
+                LogicalChildren.Clear();
+                RemoveVisualChild(oldChild);
             }
 
             if (newChild != null)
             {
-                this.AddVisualChild(newChild);
-                this.LogicalChildren.Add(newChild);
+                AddVisualChild(newChild);
+                LogicalChildren.Add(newChild);
                 ((ISetLogicalParent)newChild).SetParent(this);
             }
         }

+ 2 - 2
src/Perspex.Controls/DefinitionBase.cs

@@ -19,8 +19,8 @@ namespace Perspex.Controls
         /// </summary>
         public string SharedSizeGroup
         {
-            get { return this.GetValue(SharedSizeGroupProperty); }
-            set { this.SetValue(SharedSizeGroupProperty, value); }
+            get { return GetValue(SharedSizeGroupProperty); }
+            set { SetValue(SharedSizeGroupProperty, value); }
         }
     }
 }

+ 22 - 22
src/Perspex.Controls/DropDown.cs

@@ -41,37 +41,37 @@ namespace Perspex.Controls
 
         public DropDown()
         {
-            this.Bind(ContentProperty, this.GetObservable(DropDown.SelectedItemProperty));
+            Bind(ContentProperty, GetObservable(SelectedItemProperty));
         }
 
         public object Content
         {
-            get { return this.GetValue(ContentProperty); }
-            set { this.SetValue(ContentProperty, value); }
+            get { return GetValue(ContentProperty); }
+            set { SetValue(ContentProperty, value); }
         }
 
         public HorizontalAlignment HorizontalContentAlignment
         {
-            get { return this.GetValue(HorizontalContentAlignmentProperty); }
-            set { this.SetValue(HorizontalContentAlignmentProperty, value); }
+            get { return GetValue(HorizontalContentAlignmentProperty); }
+            set { SetValue(HorizontalContentAlignmentProperty, value); }
         }
 
         public VerticalAlignment VerticalContentAlignment
         {
-            get { return this.GetValue(VerticalContentAlignmentProperty); }
-            set { this.SetValue(VerticalContentAlignmentProperty, value); }
+            get { return GetValue(VerticalContentAlignmentProperty); }
+            set { SetValue(VerticalContentAlignmentProperty, value); }
         }
 
         public bool IsDropDownOpen
         {
-            get { return this.GetValue(IsDropDownOpenProperty); }
-            set { this.SetValue(IsDropDownOpenProperty, value); }
+            get { return GetValue(IsDropDownOpenProperty); }
+            set { SetValue(IsDropDownOpenProperty, value); }
         }
 
         public object SelectionBoxItem
         {
-            get { return this.GetValue(SelectionBoxItemProperty); }
-            set { this.SetValue(SelectionBoxItemProperty, value); }
+            get { return GetValue(SelectionBoxItemProperty); }
+            set { SetValue(SelectionBoxItemProperty, value); }
         }
 
         protected override IItemContainerGenerator CreateItemContainerGenerator()
@@ -88,12 +88,12 @@ namespace Perspex.Controls
                 if (e.Key == Key.F4 ||
                     (e.Key == Key.Down && ((e.Modifiers & ModifierKeys.Alt) != 0)))
                 {
-                    this.IsDropDownOpen = !this.IsDropDownOpen;
+                    IsDropDownOpen = !IsDropDownOpen;
                     e.Handled = true;
                 }
-                else if (this.IsDropDownOpen && (e.Key == Key.Escape || e.Key == Key.Enter))
+                else if (IsDropDownOpen && (e.Key == Key.Escape || e.Key == Key.Enter))
                 {
-                    this.IsDropDownOpen = false;
+                    IsDropDownOpen = false;
                     e.Handled = true;
                 }
             }
@@ -101,11 +101,11 @@ namespace Perspex.Controls
 
         protected override void OnPointerPressed(PointerPressEventArgs e)
         {
-            if (!this.IsDropDownOpen)
+            if (!IsDropDownOpen)
             {
                 if (((IVisual)e.Source).GetVisualAncestors().Last().GetType() != typeof(PopupRoot))
                 {
-                    this.IsDropDownOpen = true;
+                    IsDropDownOpen = true;
                 }
             }
 
@@ -116,20 +116,20 @@ namespace Perspex.Controls
         {
             if (_popup != null)
             {
-                _popup.Opened -= this.PopupOpened;
+                _popup.Opened -= PopupOpened;
             }
 
             _popup = this.GetTemplateChild<Popup>("popup");
-            _popup.Opened += this.PopupOpened;
+            _popup.Opened += PopupOpened;
         }
 
         private void PopupOpened(object sender, EventArgs e)
         {
-            var selectedIndex = this.SelectedIndex;
+            var selectedIndex = SelectedIndex;
 
             if (selectedIndex != -1)
             {
-                var container = this.ItemContainerGenerator.ContainerFromIndex(selectedIndex);
+                var container = ItemContainerGenerator.ContainerFromIndex(selectedIndex);
                 container.Focus();
             }
         }
@@ -140,7 +140,7 @@ namespace Perspex.Controls
 
             if (control != null)
             {
-                this.SelectionBoxItem = new Rectangle
+                SelectionBoxItem = new Rectangle
                 {
                     Width = control.DesiredSize.Width,
                     Height = control.DesiredSize.Height,
@@ -154,7 +154,7 @@ namespace Perspex.Controls
             }
             else
             {
-                this.SelectionBoxItem = e.NewValue;
+                SelectionBoxItem = e.NewValue;
             }
         }
     }

+ 4 - 4
src/Perspex.Controls/Generators/ItemContainerGenerator.cs

@@ -25,7 +25,7 @@ namespace Perspex.Controls.Generators
         /// <param name="owner">The owner control.</param>
         public ItemContainerGenerator(IControl owner)
         {
-            this.Owner = owner;
+            Owner = owner;
         }
 
         /// <summary>
@@ -59,11 +59,11 @@ namespace Perspex.Controls.Generators
 
             foreach (var item in items)
             {
-                IControl container = this.CreateContainer(item, itemTemplate);
+                IControl container = CreateContainer(item, itemTemplate);
                 result.Add(container);
             }
 
-            this.AddContainers(startingIndex, result);
+            AddContainers(startingIndex, result);
             _containersInitialized.OnNext(new ItemContainers(startingIndex, result));
 
             return result.Where(x => x != null).ToList();
@@ -157,7 +157,7 @@ namespace Perspex.Controls.Generators
             }
             else
             {
-                return this.Owner.MaterializeDataTemplate(item);
+                return Owner.MaterializeDataTemplate(item);
             }
         }
 

+ 1 - 1
src/Perspex.Controls/Generators/ItemContainerGenerator`1.cs

@@ -28,7 +28,7 @@ namespace Perspex.Controls.Generators
             if (result == null)
             {
                 result = new T();
-                result.Content = this.Owner.MaterializeDataTemplate(item);
+                result.Content = Owner.MaterializeDataTemplate(item);
             }
 
             return result;

+ 2 - 2
src/Perspex.Controls/Generators/ItemContainers.cs

@@ -17,8 +17,8 @@ namespace Perspex.Controls.Generators
         /// <param name="containers">The containers.</param>
         public ItemContainers(int startingIndex, IList<IControl> containers)
         {
-            this.StartingIndex = startingIndex;
-            this.Items = containers;
+            StartingIndex = startingIndex;
+            Items = containers;
         }
 
         /// <summary>

+ 6 - 6
src/Perspex.Controls/Generators/TreeItemContainerGenerator.cs

@@ -26,7 +26,7 @@ namespace Perspex.Controls.Generators
         /// <param name="owner">The owner control.</param>
         public TreeItemContainerGenerator(IControl owner)
         {
-            this.Owner = owner;
+            Owner = owner;
         }
 
         /// <summary>
@@ -57,7 +57,7 @@ namespace Perspex.Controls.Generators
 
             foreach (var item in items)
             {
-                var container = this.CreateContainer(item, itemTemplate);
+                var container = CreateContainer(item, itemTemplate);
                 _containers.Add(item, container);
                 result.Add(container);
             }
@@ -85,7 +85,7 @@ namespace Perspex.Controls.Generators
 
                 if (_containers.TryGetValue(item, out container))
                 {
-                    this.Remove(container, result);
+                    Remove(container, result);
                 }
             }
 
@@ -164,7 +164,7 @@ namespace Perspex.Controls.Generators
 
             if (result == null)
             {
-                var template = this.GetTreeDataTemplate(item);
+                var template = GetTreeDataTemplate(item);
 
                 result = new T
                 {
@@ -185,7 +185,7 @@ namespace Perspex.Controls.Generators
         /// <returns>The template.</returns>
         private ITreeDataTemplate GetTreeDataTemplate(object item)
         {
-            IDataTemplate template = this.Owner.FindDataTemplate(item);
+            IDataTemplate template = Owner.FindDataTemplate(item);
 
             if (template == null)
             {
@@ -212,7 +212,7 @@ namespace Perspex.Controls.Generators
 
                     if (_containers.TryGetValue(childItem, out childContainer))
                     {
-                        this.Remove(childContainer, removed);
+                        Remove(childContainer, removed);
                     }
                 }
             }

+ 57 - 57
src/Perspex.Controls/Grid.cs

@@ -54,7 +54,7 @@ namespace Perspex.Controls
             {
                 if (_columnDefinitions == null)
                 {
-                    this.ColumnDefinitions = new ColumnDefinitions();
+                    ColumnDefinitions = new ColumnDefinitions();
                 }
 
                 return _columnDefinitions;
@@ -68,7 +68,7 @@ namespace Perspex.Controls
                 }
 
                 _columnDefinitions = value;
-                _columnDefinitions.TrackItemPropertyChanged(_ => this.InvalidateMeasure());
+                _columnDefinitions.TrackItemPropertyChanged(_ => InvalidateMeasure());
             }
         }
 
@@ -81,7 +81,7 @@ namespace Perspex.Controls
             {
                 if (_rowDefinitions == null)
                 {
-                    this.RowDefinitions = new RowDefinitions();
+                    RowDefinitions = new RowDefinitions();
                 }
 
                 return _rowDefinitions;
@@ -95,7 +95,7 @@ namespace Perspex.Controls
                 }
 
                 _rowDefinitions = value;
-                _rowDefinitions.TrackItemPropertyChanged(_ => this.InvalidateMeasure());
+                _rowDefinitions.TrackItemPropertyChanged(_ => InvalidateMeasure());
             }
         }
 
@@ -187,13 +187,13 @@ namespace Perspex.Controls
         protected override Size MeasureOverride(Size constraint)
         {
             Size totalSize = constraint;
-            int colCount = this.ColumnDefinitions.Count;
-            int rowCount = this.RowDefinitions.Count;
+            int colCount = ColumnDefinitions.Count;
+            int rowCount = RowDefinitions.Count;
             double totalStarsX = 0;
             double totalStarsY = 0;
             bool emptyRows = rowCount == 0;
             bool emptyCols = colCount == 0;
-            bool hasChildren = this.Children.Count > 0;
+            bool hasChildren = Children.Count > 0;
 
             if (emptyRows)
             {
@@ -205,7 +205,7 @@ namespace Perspex.Controls
                 colCount = 1;
             }
 
-            this.CreateMatrices(rowCount, colCount);
+            CreateMatrices(rowCount, colCount);
 
             if (emptyRows)
             {
@@ -217,7 +217,7 @@ namespace Perspex.Controls
             {
                 for (int i = 0; i < rowCount; i++)
                 {
-                    RowDefinition rowdef = this.RowDefinitions[i];
+                    RowDefinition rowdef = RowDefinitions[i];
                     GridLength height = rowdef.Height;
 
                     rowdef.ActualHeight = double.PositiveInfinity;
@@ -252,7 +252,7 @@ namespace Perspex.Controls
             {
                 for (int i = 0; i < colCount; i++)
                 {
-                    ColumnDefinition coldef = this.ColumnDefinitions[i];
+                    ColumnDefinition coldef = ColumnDefinitions[i];
                     GridLength width = coldef.Width;
 
                     coldef.ActualWidth = double.PositiveInfinity;
@@ -301,11 +301,11 @@ namespace Perspex.Controls
 
                 if (hasChildren)
                 {
-                    this.ExpandStarCols(totalSize);
-                    this.ExpandStarRows(totalSize);
+                    ExpandStarCols(totalSize);
+                    ExpandStarRows(totalSize);
                 }
 
-                foreach (Control child in this.Children)
+                foreach (Control child in Children)
                 {
                     int col, row;
                     int colspan, rowspan;
@@ -445,7 +445,7 @@ namespace Perspex.Controls
                 {
                     node = sizes.Last();
                     node.Matrix[node.Row, node.Column].DesiredSize = Math.Max(node.Matrix[node.Row, node.Column].DesiredSize, node.Size);
-                    this.AllocateDesiredSize(rowCount, colCount);
+                    AllocateDesiredSize(rowCount, colCount);
                     sizes.Remove(node);
                 }
 
@@ -455,7 +455,7 @@ namespace Perspex.Controls
             // Once we have measured and distributed all sizes, we have to store
             // the results. Every time we want to expand the rows/cols, this will
             // be used as the baseline.
-            this.SaveMeasureResults();
+            SaveMeasureResults();
 
             sizes.Remove(separator);
 
@@ -482,12 +482,12 @@ namespace Perspex.Controls
         /// <returns>The space taken.</returns>
         protected override Size ArrangeOverride(Size finalSize)
         {
-            int colCount = this.ColumnDefinitions.Count;
-            int rowCount = this.RowDefinitions.Count;
+            int colCount = ColumnDefinitions.Count;
+            int rowCount = RowDefinitions.Count;
             int colMatrixDim = _colMatrix.GetLength(0);
             int rowMatrixDim = _rowMatrix.GetLength(0);
 
-            this.RestoreMeasureResults();
+            RestoreMeasureResults();
 
             double totalConsumedX = 0;
             double totalConsumedY = 0;
@@ -506,25 +506,25 @@ namespace Perspex.Controls
 
             if (totalConsumedX != finalSize.Width)
             {
-                this.ExpandStarCols(finalSize);
+                ExpandStarCols(finalSize);
             }
 
             if (totalConsumedY != finalSize.Height)
             {
-                this.ExpandStarRows(finalSize);
+                ExpandStarRows(finalSize);
             }
 
             for (int c = 0; c < colCount; c++)
             {
-                this.ColumnDefinitions[c].ActualWidth = _colMatrix[c, c].OfferedSize;
+                ColumnDefinitions[c].ActualWidth = _colMatrix[c, c].OfferedSize;
             }
 
             for (int r = 0; r < rowCount; r++)
             {
-                this.RowDefinitions[r].ActualHeight = _rowMatrix[r, r].OfferedSize;
+                RowDefinitions[r].ActualHeight = _rowMatrix[r, r].OfferedSize;
             }
 
-            foreach (Control child in this.Children)
+            foreach (Control child in Children)
             {
                 int col = Math.Min(GetColumn(child), colMatrixDim - 1);
                 int row = Math.Min(GetRow(child), rowMatrixDim - 1);
@@ -592,7 +592,7 @@ namespace Perspex.Controls
         private void ExpandStarCols(Size availableSize)
         {
             int matrixCount = _colMatrix.GetLength(0);
-            int columnsCount = this.ColumnDefinitions.Count;
+            int columnsCount = ColumnDefinitions.Count;
             double width = availableSize.Width;
 
             for (int i = 0; i < matrixCount; i++)
@@ -607,7 +607,7 @@ namespace Perspex.Controls
                 }
             }
 
-            this.AssignSize(_colMatrix, 0, matrixCount - 1, ref width, GridUnitType.Star, false);
+            AssignSize(_colMatrix, 0, matrixCount - 1, ref width, GridUnitType.Star, false);
             width = Math.Max(0, width);
 
             if (columnsCount > 0)
@@ -616,7 +616,7 @@ namespace Perspex.Controls
                 {
                     if (_colMatrix[i, i].Type == GridUnitType.Star)
                     {
-                        this.ColumnDefinitions[i].ActualWidth = _colMatrix[i, i].OfferedSize;
+                        ColumnDefinitions[i].ActualWidth = _colMatrix[i, i].OfferedSize;
                     }
                 }
             }
@@ -625,7 +625,7 @@ namespace Perspex.Controls
         private void ExpandStarRows(Size availableSize)
         {
             int matrixCount = _rowMatrix.GetLength(0);
-            int rowCount = this.RowDefinitions.Count;
+            int rowCount = RowDefinitions.Count;
             double height = availableSize.Height;
 
             // When expanding star rows, we need to zero out their height before
@@ -643,7 +643,7 @@ namespace Perspex.Controls
                 }
             }
 
-            this.AssignSize(_rowMatrix, 0, matrixCount - 1, ref height, GridUnitType.Star, false);
+            AssignSize(_rowMatrix, 0, matrixCount - 1, ref height, GridUnitType.Star, false);
 
             if (rowCount > 0)
             {
@@ -651,7 +651,7 @@ namespace Perspex.Controls
                 {
                     if (_rowMatrix[i, i].Type == GridUnitType.Star)
                     {
-                        this.RowDefinitions[i].ActualHeight = _rowMatrix[i, i].OfferedSize;
+                        RowDefinitions[i].ActualHeight = _rowMatrix[i, i].OfferedSize;
                     }
                 }
             }
@@ -757,12 +757,12 @@ namespace Perspex.Controls
 
                             if (spansStar)
                             {
-                                this.AssignSize(matrix, col, row, ref additional, GridUnitType.Star, true);
+                                AssignSize(matrix, col, row, ref additional, GridUnitType.Star, true);
                             }
                             else
                             {
-                                this.AssignSize(matrix, col, row, ref additional, GridUnitType.Pixel, true);
-                                this.AssignSize(matrix, col, row, ref additional, GridUnitType.Auto, true);
+                                AssignSize(matrix, col, row, ref additional, GridUnitType.Pixel, true);
+                                AssignSize(matrix, col, row, ref additional, GridUnitType.Auto, true);
                             }
                         }
                     }
@@ -839,21 +839,21 @@ namespace Perspex.Controls
 
             public Segment(double offeredSize, double min, double max, GridUnitType type)
             {
-                this.OriginalSize = 0;
-                this.Min = min;
-                this.Max = max;
-                this.DesiredSize = 0;
-                this.OfferedSize = offeredSize;
-                this.Stars = 0;
-                this.Type = type;
+                OriginalSize = 0;
+                Min = min;
+                Max = max;
+                DesiredSize = 0;
+                OfferedSize = offeredSize;
+                Stars = 0;
+                Type = type;
             }
 
             public void Init(double offeredSize, double min, double max, GridUnitType type)
             {
-                this.OfferedSize = offeredSize;
-                this.Min = min;
-                this.Max = max;
-                this.Type = type;
+                OfferedSize = offeredSize;
+                Min = min;
+                Max = max;
+                Type = type;
             }
         }
 
@@ -866,10 +866,10 @@ namespace Perspex.Controls
 
             public GridNode(Segment[,] matrix, int row, int col, double size)
             {
-                this.Matrix = matrix;
-                this.Row = row;
-                this.Column = col;
-                this.Size = size;
+                Matrix = matrix;
+                Row = row;
+                Column = col;
+                Size = size;
             }
         }
 
@@ -887,10 +887,10 @@ namespace Perspex.Controls
                     bool autoCol = false;
                     bool autoRow = false;
 
-                    int col = Math.Min(Grid.GetColumn(child), colMatrixDim - 1);
-                    int row = Math.Min(Grid.GetRow(child), rowMatrixDim - 1);
-                    int colspan = Math.Min(Grid.GetColumnSpan(child), colMatrixDim - 1);
-                    int rowspan = Math.Min(Grid.GetRowSpan(child), rowMatrixDim - 1);
+                    int col = Math.Min(GetColumn(child), colMatrixDim - 1);
+                    int row = Math.Min(GetRow(child), rowMatrixDim - 1);
+                    int colspan = Math.Min(GetColumnSpan(child), colMatrixDim - 1);
+                    int rowspan = Math.Min(GetRowSpan(child), rowMatrixDim - 1);
 
                     for (int r = row; r < row + rowspan; r++)
                     {
@@ -904,17 +904,17 @@ namespace Perspex.Controls
                         autoCol |= colMatrix[c, c].Type == GridUnitType.Auto;
                     }
 
-                    this.HasAutoAuto |= autoRow && autoCol && !starRow && !starCol;
-                    this.HasStarAuto |= starRow && autoCol;
-                    this.HasAutoStar |= autoRow && starCol;
+                    HasAutoAuto |= autoRow && autoCol && !starRow && !starCol;
+                    HasStarAuto |= starRow && autoCol;
+                    HasAutoStar |= autoRow && starCol;
                 }
             }
 
-            public bool HasAutoAuto { get; private set; }
+            public bool HasAutoAuto { get; }
 
-            public bool HasStarAuto { get; private set; }
+            public bool HasStarAuto { get; }
 
-            public bool HasAutoStar { get; private set; }
+            public bool HasAutoStar { get; }
         }
     }
 }

+ 3 - 3
src/Perspex.Controls/GridLength.cs

@@ -183,13 +183,13 @@ namespace Perspex.Controls
         /// <returns>The string representation.</returns>
         public override string ToString()
         {
-            if (this.IsAuto)
+            if (IsAuto)
             {
                 return "Auto";
             }
 
             string s = _value.ToString();
-            return this.IsStar ? s + "*" : s;
+            return IsStar ? s + "*" : s;
         }
 
         /// <summary>
@@ -203,7 +203,7 @@ namespace Perspex.Controls
 
             if (s == "AUTO")
             {
-                return GridLength.Auto;
+                return Auto;
             }
             else if (s.EndsWith("*"))
             {

+ 2 - 2
src/Perspex.Controls/GridSplitter.cs

@@ -18,12 +18,12 @@ namespace Perspex.Controls
         /// </summary>
         public GridSplitter()
         {
-            this.Cursor = new Cursor(StandardCursorType.SizeWestEast);
+            Cursor = new Cursor(StandardCursorType.SizeWestEast);
         }
 
         protected override void OnDragDelta(VectorEventArgs e)
         {
-            int col = this.GetValue(Grid.ColumnProperty);
+            int col = GetValue(Grid.ColumnProperty);
 
             if (_grid != null && col > 0)
             {

+ 15 - 15
src/Perspex.Controls/Image.cs

@@ -29,8 +29,8 @@ namespace Perspex.Controls
         /// </summary>
         public Bitmap Source
         {
-            get { return this.GetValue(SourceProperty); }
-            set { this.SetValue(SourceProperty, value); }
+            get { return GetValue(SourceProperty); }
+            set { SetValue(SourceProperty, value); }
         }
 
         /// <summary>
@@ -38,8 +38,8 @@ namespace Perspex.Controls
         /// </summary>
         public Stretch Stretch
         {
-            get { return (Stretch)this.GetValue(StretchProperty); }
-            set { this.SetValue(StretchProperty, value); }
+            get { return (Stretch)GetValue(StretchProperty); }
+            set { SetValue(StretchProperty, value); }
         }
 
         /// <summary>
@@ -48,13 +48,13 @@ namespace Perspex.Controls
         /// <param name="context">The drawing context.</param>
         public override void Render(IDrawingContext context)
         {
-            Bitmap source = this.Source;
+            Bitmap source = Source;
 
             if (source != null)
             {
-                Rect viewPort = new Rect(this.Bounds.Size);
+                Rect viewPort = new Rect(Bounds.Size);
                 Size sourceSize = new Size(source.PixelWidth, source.PixelHeight);
-                Vector scale = this.Stretch.CalculateScaling(this.Bounds.Size, sourceSize);
+                Vector scale = Stretch.CalculateScaling(Bounds.Size, sourceSize);
                 Size scaledSize = sourceSize * scale;
                 Rect destRect = viewPort
                     .CenterIn(new Rect(scaledSize))
@@ -77,22 +77,22 @@ namespace Perspex.Controls
             double height = 0;
             Vector scale = new Vector();
 
-            if (this.Source != null)
+            if (Source != null)
             {
-                width = this.Source.PixelWidth;
-                height = this.Source.PixelHeight;
+                width = Source.PixelWidth;
+                height = Source.PixelHeight;
 
-                if (this.Width > 0)
+                if (Width > 0)
                 {
-                    availableSize = new Size(this.Width, availableSize.Height);
+                    availableSize = new Size(Width, availableSize.Height);
                 }
 
-                if (this.Height > 0)
+                if (Height > 0)
                 {
-                    availableSize = new Size(availableSize.Width, this.Height);
+                    availableSize = new Size(availableSize.Width, Height);
                 }
 
-                scale = this.Stretch.CalculateScaling(availableSize, new Size(width, height));
+                scale = Stretch.CalculateScaling(availableSize, new Size(width, height));
             }
 
             return new Size(width * scale.X, height * scale.Y);

+ 15 - 15
src/Perspex.Controls/ItemsControl.cs

@@ -56,8 +56,8 @@ namespace Perspex.Controls
         /// </summary>
         public ItemsControl()
         {
-            this.Classes.Add(":empty");
-            this.Items = new PerspexList<object>();
+            Classes.Add(":empty");
+            Items = new PerspexList<object>();
         }
 
         /// <summary>
@@ -69,7 +69,7 @@ namespace Perspex.Controls
             {
                 if (_itemContainerGenerator == null)
                 {
-                    _itemContainerGenerator = this.CreateItemContainerGenerator();
+                    _itemContainerGenerator = CreateItemContainerGenerator();
                 }
 
                 return _itemContainerGenerator;
@@ -81,8 +81,8 @@ namespace Perspex.Controls
         /// </summary>
         public IEnumerable Items
         {
-            get { return this.GetValue(ItemsProperty); }
-            set { this.SetValue(ItemsProperty, value); }
+            get { return GetValue(ItemsProperty); }
+            set { SetValue(ItemsProperty, value); }
         }
 
         /// <summary>
@@ -90,8 +90,8 @@ namespace Perspex.Controls
         /// </summary>
         public ITemplate<IPanel> ItemsPanel
         {
-            get { return this.GetValue(ItemsPanelProperty); }
-            set { this.SetValue(ItemsPanelProperty, value); }
+            get { return GetValue(ItemsPanelProperty); }
+            set { SetValue(ItemsPanelProperty, value); }
         }
 
         /// <summary>
@@ -106,7 +106,7 @@ namespace Perspex.Controls
         /// <inheritdoc/>
         IPerspexList<ILogical> IReparentingHost.LogicalChildren
         {
-            get { return this.LogicalChildren; }
+            get { return LogicalChildren; }
         }
 
         /// <summary>
@@ -134,7 +134,7 @@ namespace Perspex.Controls
         /// <inheritdoc/>
         protected override void OnTemplateApplied()
         {
-            this.Presenter = this.FindTemplateChild<IItemsPresenter>("itemsPresenter");
+            Presenter = this.FindTemplateChild<IItemsPresenter>("itemsPresenter");
         }
 
         /// <summary>
@@ -147,25 +147,25 @@ namespace Perspex.Controls
 
             if (incc != null)
             {
-                incc.CollectionChanged += this.ItemsCollectionChanged;
+                incc.CollectionChanged += ItemsCollectionChanged;
             }
 
             var newValue = e.NewValue as IEnumerable;
 
             if (newValue == null || newValue.Count() == 0)
             {
-                this.Classes.Add(":empty");
+                Classes.Add(":empty");
             }
             else
             {
-                this.Classes.Remove(":empty");
+                Classes.Remove(":empty");
             }
 
             incc = newValue as INotifyCollectionChanged;
 
             if (incc != null)
             {
-                incc.CollectionChanged += this.ItemsCollectionChanged;
+                incc.CollectionChanged += ItemsCollectionChanged;
             }
         }
 
@@ -181,11 +181,11 @@ namespace Perspex.Controls
 
             if (collection.Count == 0)
             {
-                this.Classes.Add(":empty");
+                Classes.Add(":empty");
             }
             else
             {
-                this.Classes.Remove(":empty");
+                Classes.Remove(":empty");
             }
         }
     }

+ 2 - 2
src/Perspex.Controls/ListBoxItem.cs

@@ -30,8 +30,8 @@ namespace Perspex.Controls
         /// </summary>
         public bool IsSelected
         {
-            get { return this.GetValue(IsSelectedProperty); }
-            set { this.SetValue(IsSelectedProperty, value); }
+            get { return GetValue(IsSelectedProperty); }
+            set { SetValue(IsSelectedProperty, value); }
         }
     }
 }

+ 21 - 21
src/Perspex.Controls/Menu.cs

@@ -50,8 +50,8 @@ namespace Perspex.Controls
         /// </summary>
         public bool IsOpen
         {
-            get { return this.GetValue(IsOpenProperty); }
-            private set { this.SetValue(IsOpenProperty, value); }
+            get { return GetValue(IsOpenProperty); }
+            private set { SetValue(IsOpenProperty, value); }
         }
 
         /// <summary>
@@ -61,9 +61,9 @@ namespace Perspex.Controls
         {
             get
             {
-                var index = this.SelectedIndex;
+                var index = SelectedIndex;
                 return (index != -1) ?
-                    (MenuItem)this.ItemContainerGenerator.ContainerFromIndex(index) :
+                    (MenuItem)ItemContainerGenerator.ContainerFromIndex(index) :
                     null;
             }
         }
@@ -78,8 +78,8 @@ namespace Perspex.Controls
                 i.IsSubMenuOpen = false;
             }
 
-            this.IsOpen = false;
-            this.SelectedIndex = -1;
+            IsOpen = false;
+            SelectedIndex = -1;
         }
 
         /// <summary>
@@ -87,9 +87,9 @@ namespace Perspex.Controls
         /// </summary>
         public void Open()
         {
-            this.SelectedIndex = 0;
-            this.SelectedMenuItem.Focus();
-            this.IsOpen = true;
+            SelectedIndex = 0;
+            SelectedMenuItem.Focus();
+            IsOpen = true;
         }
 
         /// <summary>
@@ -102,16 +102,16 @@ namespace Perspex.Controls
 
             var topLevel = root as TopLevel;
 
-            topLevel.Deactivated += this.Deactivated;
+            topLevel.Deactivated += Deactivated;
 
             var pointerPress = topLevel.AddHandler(
-                InputElement.PointerPressedEvent,
-                this.TopLevelPreviewPointerPress,
+                PointerPressedEvent,
+                TopLevelPreviewPointerPress,
                 RoutingStrategies.Tunnel);
 
             _subscription = new CompositeDisposable(
                 pointerPress,
-                Disposable.Create(() => topLevel.Deactivated -= this.Deactivated));
+                Disposable.Create(() => topLevel.Deactivated -= Deactivated));
 
             var inputRoot = root as IInputRoot;
 
@@ -137,7 +137,7 @@ namespace Perspex.Controls
         /// <param name="e">The event args.</param>
         protected override void OnKeyDown(KeyEventArgs e)
         {
-            bool menuWasOpen = this.SelectedMenuItem?.IsSubMenuOpen ?? false;
+            bool menuWasOpen = SelectedMenuItem?.IsSubMenuOpen ?? false;
 
             base.OnKeyDown(e);
 
@@ -145,7 +145,7 @@ namespace Perspex.Controls
             {
                 // If a menu item was open and we navigate to a new one with the arrow keys, open
                 // that menu and select the first item.
-                var selection = this.SelectedMenuItem;
+                var selection = SelectedMenuItem;
 
                 if (selection != null && !selection.IsSubMenuOpen)
                 {
@@ -162,7 +162,7 @@ namespace Perspex.Controls
         protected override void OnLostFocus(RoutedEventArgs e)
         {
             base.OnLostFocus(e);
-            this.SelectedItem = null;
+            SelectedItem = null;
         }
 
         /// <summary>
@@ -184,7 +184,7 @@ namespace Perspex.Controls
                 }
             }
 
-            this.IsOpen = true;
+            IsOpen = true;
         }
 
         /// <summary>
@@ -194,7 +194,7 @@ namespace Perspex.Controls
         /// <param name="e">The event args.</param>
         private void Deactivated(object sender, EventArgs e)
         {
-            this.Close();
+            Close();
         }
 
         /// <summary>
@@ -203,7 +203,7 @@ namespace Perspex.Controls
         /// <param name="e">The event args.</param>
         private void OnMenuClick(RoutedEventArgs e)
         {
-            this.Close();
+            Close();
             FocusManager.Instance.Focus(null);
             e.Handled = true;
         }
@@ -215,13 +215,13 @@ namespace Perspex.Controls
         /// <param name="e">The event args.</param>
         private void TopLevelPreviewPointerPress(object sender, PointerPressEventArgs e)
         {
-            if (this.IsOpen)
+            if (IsOpen)
             {
                 var control = e.Source as ILogical;
 
                 if (!this.IsLogicalParentOf(control))
                 {
-                    this.Close();
+                    Close();
                 }
             }
         }

+ 58 - 58
src/Perspex.Controls/MenuItem.cs

@@ -109,8 +109,8 @@ namespace Perspex.Controls
         /// </summary>
         public event EventHandler<RoutedEventArgs> Click
         {
-            add { this.AddHandler(ClickEvent, value); }
-            remove { this.RemoveHandler(ClickEvent, value); }
+            add { AddHandler(ClickEvent, value); }
+            remove { RemoveHandler(ClickEvent, value); }
         }
 
         /// <summary>
@@ -118,8 +118,8 @@ namespace Perspex.Controls
         /// </summary>
         public event EventHandler<RoutedEventArgs> SubmenuOpened
         {
-            add { this.AddHandler(SubmenuOpenedEvent, value); }
-            remove { this.RemoveHandler(SubmenuOpenedEvent, value); }
+            add { AddHandler(SubmenuOpenedEvent, value); }
+            remove { RemoveHandler(SubmenuOpenedEvent, value); }
         }
 
         /// <summary>
@@ -127,8 +127,8 @@ namespace Perspex.Controls
         /// </summary>
         public ICommand Command
         {
-            get { return this.GetValue(CommandProperty); }
-            set { this.SetValue(CommandProperty, value); }
+            get { return GetValue(CommandProperty); }
+            set { SetValue(CommandProperty, value); }
         }
 
         /// <summary>
@@ -137,8 +137,8 @@ namespace Perspex.Controls
         /// </summary>
         public object CommandParameter
         {
-            get { return this.GetValue(CommandParameterProperty); }
-            set { this.SetValue(CommandParameterProperty, value); }
+            get { return GetValue(CommandParameterProperty); }
+            set { SetValue(CommandParameterProperty, value); }
         }
 
         /// <summary>
@@ -146,8 +146,8 @@ namespace Perspex.Controls
         /// </summary>
         public object Header
         {
-            get { return this.GetValue(HeaderProperty); }
-            set { this.SetValue(HeaderProperty, value); }
+            get { return GetValue(HeaderProperty); }
+            set { SetValue(HeaderProperty, value); }
         }
 
         /// <summary>
@@ -155,8 +155,8 @@ namespace Perspex.Controls
         /// </summary>
         public object Icon
         {
-            get { return this.GetValue(IconProperty); }
-            set { this.SetValue(IconProperty, value); }
+            get { return GetValue(IconProperty); }
+            set { SetValue(IconProperty, value); }
         }
 
         /// <summary>
@@ -164,8 +164,8 @@ namespace Perspex.Controls
         /// </summary>
         public bool IsSelected
         {
-            get { return this.GetValue(IsSelectedProperty); }
-            set { this.SetValue(IsSelectedProperty, value); }
+            get { return GetValue(IsSelectedProperty); }
+            set { SetValue(IsSelectedProperty, value); }
         }
 
         /// <summary>
@@ -174,8 +174,8 @@ namespace Perspex.Controls
         /// </summary>
         public bool IsSubMenuOpen
         {
-            get { return this.GetValue(IsSubMenuOpenProperty); }
-            set { this.SetValue(IsSubMenuOpenProperty, value); }
+            get { return GetValue(IsSubMenuOpenProperty); }
+            set { SetValue(IsSubMenuOpenProperty, value); }
         }
 
         /// <summary>
@@ -183,7 +183,7 @@ namespace Perspex.Controls
         /// </summary>
         public bool HasSubMenu
         {
-            get { return !this.Classes.Contains(":empty"); }
+            get { return !Classes.Contains(":empty"); }
         }
 
         /// <summary>
@@ -191,7 +191,7 @@ namespace Perspex.Controls
         /// </summary>
         public bool IsTopLevel
         {
-            get { return this.Parent is Menu; }
+            get { return Parent is Menu; }
         }
 
         /// <summary>
@@ -200,9 +200,9 @@ namespace Perspex.Controls
         /// <param name="e">The click event args.</param>
         protected virtual void OnClick(RoutedEventArgs e)
         {
-            if (this.Command != null)
+            if (Command != null)
             {
-                this.Command.Execute(this.CommandParameter);
+                Command.Execute(CommandParameter);
             }
         }
 
@@ -213,7 +213,7 @@ namespace Perspex.Controls
         protected override void OnGotFocus(GotFocusEventArgs e)
         {
             base.OnGotFocus(e);
-            this.IsSelected = true;
+            IsSelected = true;
         }
 
         /// <summary>
@@ -231,43 +231,43 @@ namespace Perspex.Controls
             switch (e.Key)
             {
                 case Key.Left:
-                    if (!this.IsTopLevel && this.IsSubMenuOpen)
+                    if (!IsTopLevel && IsSubMenuOpen)
                     {
-                        this.IsSubMenuOpen = false;
+                        IsSubMenuOpen = false;
                         e.Handled = true;
                     }
 
-                    passStraightToParent = this.IsTopLevel || !this.IsSubMenuOpen;
+                    passStraightToParent = IsTopLevel || !IsSubMenuOpen;
                     break;
 
                 case Key.Right:
-                    if (!this.IsTopLevel && this.HasSubMenu && !this.IsSubMenuOpen)
+                    if (!IsTopLevel && HasSubMenu && !IsSubMenuOpen)
                     {
-                        this.SelectedIndex = 0;
-                        this.IsSubMenuOpen = true;
+                        SelectedIndex = 0;
+                        IsSubMenuOpen = true;
                         e.Handled = true;
                     }
 
-                    passStraightToParent = this.IsTopLevel || !this.IsSubMenuOpen;
+                    passStraightToParent = IsTopLevel || !IsSubMenuOpen;
                     break;
 
                 case Key.Enter:
-                    if (this.HasSubMenu)
+                    if (HasSubMenu)
                     {
                         goto case Key.Right;
                     }
                     else
                     {
-                        this.RaiseEvent(new RoutedEventArgs(ClickEvent));
+                        RaiseEvent(new RoutedEventArgs(ClickEvent));
                         e.Handled = true;
                     }
 
                     break;
 
                 case Key.Escape:
-                    if (this.IsSubMenuOpen)
+                    if (IsSubMenuOpen)
                     {
-                        this.IsSubMenuOpen = false;
+                        IsSubMenuOpen = false;
                         e.Handled = true;
                     }
 
@@ -288,19 +288,19 @@ namespace Perspex.Controls
         {
             base.OnPointerEnter(e);
 
-            var menu = this.Parent as Menu;
+            var menu = Parent as Menu;
 
             if (menu != null)
             {
                 if (menu.IsOpen)
                 {
-                    this.IsSubMenuOpen = true;
+                    IsSubMenuOpen = true;
                 }
             }
-            else if (this.HasSubMenu && !this.IsSubMenuOpen)
+            else if (HasSubMenu && !IsSubMenuOpen)
             {
                 _submenuTimer = DispatcherTimer.Run(
-                    () => this.IsSubMenuOpen = true,
+                    () => IsSubMenuOpen = true,
                     TimeSpan.FromMilliseconds(400));
             }
         }
@@ -328,17 +328,17 @@ namespace Perspex.Controls
         {
             base.OnPointerPressed(e);
 
-            if (!this.HasSubMenu)
+            if (!HasSubMenu)
             {
-                this.RaiseEvent(new RoutedEventArgs(ClickEvent));
+                RaiseEvent(new RoutedEventArgs(ClickEvent));
             }
-            else if (this.IsTopLevel)
+            else if (IsTopLevel)
             {
-                this.IsSubMenuOpen = !this.IsSubMenuOpen;
+                IsSubMenuOpen = !IsSubMenuOpen;
             }
             else
             {
-                this.IsSubMenuOpen = true;
+                IsSubMenuOpen = true;
             }
 
             e.Handled = true;
@@ -354,7 +354,7 @@ namespace Perspex.Controls
 
             if (menuItem != null && menuItem.Parent == this)
             {
-                foreach (var child in this.Items.OfType<MenuItem>())
+                foreach (var child in Items.OfType<MenuItem>())
                 {
                     if (child != menuItem && child.IsSubMenuOpen)
                     {
@@ -373,9 +373,9 @@ namespace Perspex.Controls
 
             _popup = this.GetTemplateChild<Popup>("popup");
             _popup.DependencyResolver = DependencyResolver.Instance;
-            _popup.PopupRootCreated += this.PopupRootCreated;
-            _popup.Opened += this.PopupOpened;
-            _popup.Closed += this.PopupClosed;
+            _popup.PopupRootCreated += PopupRootCreated;
+            _popup.Opened += PopupOpened;
+            _popup.Closed += PopupClosed;
         }
 
         /// <summary>
@@ -384,14 +384,14 @@ namespace Perspex.Controls
         /// <param name="e">The event args.</param>
         private void AccessKeyPressed(RoutedEventArgs e)
         {
-            if (this.HasSubMenu)
+            if (HasSubMenu)
             {
-                this.SelectedIndex = 0;
-                this.IsSubMenuOpen = true;
+                SelectedIndex = 0;
+                IsSubMenuOpen = true;
             }
             else
             {
-                this.RaiseEvent(new RoutedEventArgs(ClickEvent));
+                RaiseEvent(new RoutedEventArgs(ClickEvent));
             }
 
             e.Handled = true;
@@ -402,7 +402,7 @@ namespace Perspex.Controls
         /// </summary>
         private void CloseSubmenus()
         {
-            foreach (var child in this.Items.OfType<MenuItem>())
+            foreach (var child in Items.OfType<MenuItem>())
             {
                 child.IsSubMenuOpen = false;
             }
@@ -418,13 +418,13 @@ namespace Perspex.Controls
 
             if (value)
             {
-                this.RaiseEvent(new RoutedEventArgs(SubmenuOpenedEvent));
-                this.IsSelected = true;
+                RaiseEvent(new RoutedEventArgs(SubmenuOpenedEvent));
+                IsSelected = true;
             }
             else
             {
-                this.CloseSubmenus();
-                this.SelectedIndex = -1;
+                CloseSubmenus();
+                SelectedIndex = -1;
             }
         }
 
@@ -458,7 +458,7 @@ namespace Perspex.Controls
                 // The presenter was found. Set its TemplatedParent so it thinks that it had a
                 // normal birth; may it never know its own perveristy.
                 presenter.TemplatedParent = this;
-                this.Presenter = presenter;
+                Presenter = presenter;
             }
         }
 
@@ -469,11 +469,11 @@ namespace Perspex.Controls
         /// <param name="e">The event args.</param>
         private void PopupOpened(object sender, EventArgs e)
         {
-            var selected = this.SelectedIndex;
+            var selected = SelectedIndex;
 
             if (selected != -1)
             {
-                var container = this.ItemContainerGenerator.ContainerFromIndex(selected);
+                var container = ItemContainerGenerator.ContainerFromIndex(selected);
 
                 if (container != null)
                 {
@@ -489,7 +489,7 @@ namespace Perspex.Controls
         /// <param name="e">The event args.</param>
         private void PopupClosed(object sender, EventArgs e)
         {
-            this.SelectedItem = null;
+            SelectedItem = null;
         }
 
         /// <summary>

+ 1 - 1
src/Perspex.Controls/MenuItemAccessKeyHandler.cs

@@ -50,7 +50,7 @@ namespace Perspex.Controls
 
             _owner = owner;
 
-            _owner.AddHandler(InputElement.TextInputEvent, this.OnTextInput);
+            _owner.AddHandler(InputElement.TextInputEvent, OnTextInput);
         }
 
         /// <summary>

+ 15 - 15
src/Perspex.Controls/Panel.cs

@@ -27,7 +27,7 @@ namespace Perspex.Controls
         /// </summary>
         public Panel()
         {
-            _children.CollectionChanged += this.ChildrenChanged;
+            _children.CollectionChanged += ChildrenChanged;
             _childLogicalParent = this;
         }
 
@@ -51,7 +51,7 @@ namespace Perspex.Controls
             {
                 Contract.Requires<ArgumentNullException>(value != null);
 
-                this.ClearVisualChildren();
+                ClearVisualChildren();
                 _children.Clear();
                 _children.AddRange(value);
             }
@@ -73,9 +73,9 @@ namespace Perspex.Controls
             Contract.Requires<ArgumentNullException>(children != null);
 
             _childLogicalParent = logicalParent;
-            this.RedirectLogicalChildren(children);
+            RedirectLogicalChildren(children);
 
-            foreach (var control in this.Children)
+            foreach (var control in Children)
             {
                 ((ISetLogicalParent)control).SetParent(null);
                 ((ISetLogicalParent)control).SetParent((IControl)logicalParent);
@@ -123,28 +123,28 @@ namespace Perspex.Controls
             {
                 case NotifyCollectionChangedAction.Add:
                     controls = e.NewItems.OfType<Control>().ToList();
-                    this.SetLogicalParent(controls);
-                    this.AddVisualChildren(e.NewItems.OfType<Visual>());
-                    this.LogicalChildren.InsertRange(e.NewStartingIndex, controls);
+                    SetLogicalParent(controls);
+                    AddVisualChildren(e.NewItems.OfType<Visual>());
+                    LogicalChildren.InsertRange(e.NewStartingIndex, controls);
                     break;
 
                 case NotifyCollectionChangedAction.Remove:
                     controls = e.OldItems.OfType<Control>().ToList();
-                    this.ClearLogicalParent(e.OldItems.OfType<Control>());
-                    this.LogicalChildren.RemoveAll(controls);
-                    this.RemoveVisualChildren(e.OldItems.OfType<Visual>());
+                    ClearLogicalParent(e.OldItems.OfType<Control>());
+                    LogicalChildren.RemoveAll(controls);
+                    RemoveVisualChildren(e.OldItems.OfType<Visual>());
                     break;
 
                 case NotifyCollectionChangedAction.Reset:
                     controls = e.OldItems.OfType<Control>().ToList();
-                    this.ClearLogicalParent(controls);
-                    this.LogicalChildren.Clear();
-                    this.ClearVisualChildren();
-                    this.AddVisualChildren(_children);
+                    ClearLogicalParent(controls);
+                    LogicalChildren.Clear();
+                    ClearVisualChildren();
+                    AddVisualChildren(_children);
                     break;
             }
 
-            this.InvalidateMeasure();
+            InvalidateMeasure();
         }
     }
 }

+ 13 - 13
src/Perspex.Controls/Presenters/ContentPresenter.cs

@@ -38,8 +38,8 @@ namespace Perspex.Controls.Presenters
         /// </summary>
         public IControl Child
         {
-            get { return this.GetValue(ChildProperty); }
-            private set { this.SetValue(ChildProperty, value); }
+            get { return GetValue(ChildProperty); }
+            private set { SetValue(ChildProperty, value); }
         }
 
         /// <summary>
@@ -47,8 +47,8 @@ namespace Perspex.Controls.Presenters
         /// </summary>
         public object Content
         {
-            get { return this.GetValue(ContentProperty); }
-            set { this.SetValue(ContentProperty, value); }
+            get { return GetValue(ContentProperty); }
+            set { SetValue(ContentProperty, value); }
         }
 
         /// <inheritdoc/>
@@ -56,7 +56,7 @@ namespace Perspex.Controls.Presenters
         {
             if (!_createdChild)
             {
-                this.CreateChild();
+                CreateChild();
             }
         }
 
@@ -69,7 +69,7 @@ namespace Perspex.Controls.Presenters
         /// <inheritdoc/>
         protected override Size MeasureOverride(Size availableSize)
         {
-            var child = this.Child;
+            var child = Child;
 
             if (child != null)
             {
@@ -87,7 +87,7 @@ namespace Perspex.Controls.Presenters
         private void ContentChanged(PerspexPropertyChangedEventArgs e)
         {
             _createdChild = false;
-            this.InvalidateMeasure();
+            InvalidateMeasure();
         }
 
         /// <summary>
@@ -95,20 +95,20 @@ namespace Perspex.Controls.Presenters
         /// </summary>
         private void CreateChild()
         {
-            var old = this.Child;
-            var content = this.Content;
+            var old = Child;
+            var content = Content;
             var result = content != null ? this.MaterializeDataTemplate(content) : null;
             var logicalHost = this.FindReparentingHost();
-            var logicalChildren = logicalHost?.LogicalChildren ?? this.LogicalChildren;
+            var logicalChildren = logicalHost?.LogicalChildren ?? LogicalChildren;
 
             logicalChildren.Remove(old);
-            this.ClearVisualChildren();
+            ClearVisualChildren();
 
-            this.Child = result;
+            Child = result;
 
             if (result != null)
             {
-                this.AddVisualChild(result);
+                AddVisualChild(result);
 
                 if (result.Parent == null)
                 {

+ 24 - 24
src/Perspex.Controls/Presenters/DeckPresenter.cs

@@ -65,7 +65,7 @@ namespace Perspex.Controls.Presenters
             {
                 if (_generator == null)
                 {
-                    var i = this.TemplatedParent as ItemsControl;
+                    var i = TemplatedParent as ItemsControl;
                     _generator = i?.ItemContainerGenerator ?? new ItemContainerGenerator(this);
                 }
 
@@ -88,8 +88,8 @@ namespace Perspex.Controls.Presenters
         /// </summary>
         public IEnumerable Items
         {
-            get { return this.GetValue(ItemsProperty); }
-            set { this.SetValue(ItemsProperty, value); }
+            get { return GetValue(ItemsProperty); }
+            set { SetValue(ItemsProperty, value); }
         }
 
         /// <summary>
@@ -97,8 +97,8 @@ namespace Perspex.Controls.Presenters
         /// </summary>
         public ITemplate<IPanel> ItemsPanel
         {
-            get { return this.GetValue(ItemsPanelProperty); }
-            set { this.SetValue(ItemsPanelProperty, value); }
+            get { return GetValue(ItemsPanelProperty); }
+            set { SetValue(ItemsPanelProperty, value); }
         }
 
         /// <summary>
@@ -106,8 +106,8 @@ namespace Perspex.Controls.Presenters
         /// </summary>
         public int SelectedIndex
         {
-            get { return this.GetValue(SelectedIndexProperty); }
-            set { this.SetValue(SelectedIndexProperty, value); }
+            get { return GetValue(SelectedIndexProperty); }
+            set { SetValue(SelectedIndexProperty, value); }
         }
 
         /// <summary>
@@ -124,8 +124,8 @@ namespace Perspex.Controls.Presenters
         /// </summary>
         public IPageTransition Transition
         {
-            get { return this.GetValue(TransitionProperty); }
-            set { this.SetValue(TransitionProperty, value); }
+            get { return GetValue(TransitionProperty); }
+            set { SetValue(TransitionProperty, value); }
         }
 
         /// <inheritdoc/>
@@ -133,7 +133,7 @@ namespace Perspex.Controls.Presenters
         {
             if (!_createdPanel)
             {
-                this.CreatePanel();
+                CreatePanel();
             }
         }
 
@@ -144,21 +144,21 @@ namespace Perspex.Controls.Presenters
         {
             var logicalHost = this.FindReparentingHost();
 
-            this.ClearVisualChildren();
-            this.Panel = this.ItemsPanel.Build();
-            this.Panel.SetValue(TemplatedParentProperty, this.TemplatedParent);
+            ClearVisualChildren();
+            Panel = ItemsPanel.Build();
+            Panel.SetValue(TemplatedParentProperty, TemplatedParent);
 
-            this.AddVisualChild(this.Panel);
+            AddVisualChild(Panel);
 
             if (logicalHost != null)
             {
-                ((IReparentingControl)this.Panel).ReparentLogicalChildren(
+                ((IReparentingControl)Panel).ReparentLogicalChildren(
                     logicalHost,
                     logicalHost.LogicalChildren);
             }
 
             _createdPanel = true;
-            var task = this.MoveToPage(-1, this.SelectedIndex);
+            var task = MoveToPage(-1, SelectedIndex);
         }
 
         /// <summary>
@@ -169,7 +169,7 @@ namespace Perspex.Controls.Presenters
         /// <returns>A task tracking the animation.</returns>
         private async Task MoveToPage(int fromIndex, int toIndex)
         {
-            var generator = this.ItemContainerGenerator;
+            var generator = ItemContainerGenerator;
             IControl from = null;
             IControl to = null;
 
@@ -180,23 +180,23 @@ namespace Perspex.Controls.Presenters
 
             if (toIndex != -1)
             {
-                var item = this.Items.Cast<object>().ElementAt(toIndex);
+                var item = Items.Cast<object>().ElementAt(toIndex);
                 to = generator.CreateContainers(toIndex, new[] { item }, null).FirstOrDefault();
 
                 if (to != null)
                 {
-                    this.Panel.Children.Add(to);
+                    Panel.Children.Add(to);
                 }
             }
 
-            if (this.Transition != null)
+            if (Transition != null)
             {
-                await this.Transition.Start((Visual)from, (Visual)to, fromIndex < toIndex);
+                await Transition.Start((Visual)from, (Visual)to, fromIndex < toIndex);
             }
 
             if (from != null)
             {
-                this.Panel.Children.Remove(from);
+                Panel.Children.Remove(from);
                 generator.RemoveContainers(fromIndex, new[] { from });
             }
         }
@@ -207,9 +207,9 @@ namespace Perspex.Controls.Presenters
         /// <param name="e">The event args.</param>
         private void SelectedIndexChanged(PerspexPropertyChangedEventArgs e)
         {
-            if (this.Panel != null)
+            if (Panel != null)
             {
-                var task = this.MoveToPage((int)e.OldValue, (int)e.NewValue);
+                var task = MoveToPage((int)e.OldValue, (int)e.NewValue);
             }
         }
     }

+ 30 - 30
src/Perspex.Controls/Presenters/ItemsPresenter.cs

@@ -60,7 +60,7 @@ namespace Perspex.Controls.Presenters
             {
                 if (_generator == null)
                 {
-                    var i = this.TemplatedParent as ItemsControl;
+                    var i = TemplatedParent as ItemsControl;
                     _generator = i?.ItemContainerGenerator ?? new ItemContainerGenerator(this);
                 }
 
@@ -83,8 +83,8 @@ namespace Perspex.Controls.Presenters
         /// </summary>
         public IEnumerable Items
         {
-            get { return this.GetValue(ItemsProperty); }
-            set { this.SetValue(ItemsProperty, value); }
+            get { return GetValue(ItemsProperty); }
+            set { SetValue(ItemsProperty, value); }
         }
 
         /// <summary>
@@ -92,8 +92,8 @@ namespace Perspex.Controls.Presenters
         /// </summary>
         public ITemplate<IPanel> ItemsPanel
         {
-            get { return this.GetValue(ItemsPanelProperty); }
-            set { this.SetValue(ItemsPanelProperty, value); }
+            get { return GetValue(ItemsPanelProperty); }
+            set { SetValue(ItemsPanelProperty, value); }
         }
 
         /// <summary>
@@ -110,21 +110,21 @@ namespace Perspex.Controls.Presenters
         {
             if (!_createdPanel)
             {
-                this.CreatePanel();
+                CreatePanel();
             }
         }
 
         /// <inheritdoc/>
         protected override Size MeasureOverride(Size availableSize)
         {
-            this.Panel.Measure(availableSize);
-            return this.Panel.DesiredSize;
+            Panel.Measure(availableSize);
+            return Panel.DesiredSize;
         }
 
         /// <inheritdoc/>
         protected override Size ArrangeOverride(Size finalSize)
         {
-            this.Panel.Arrange(new Rect(finalSize));
+            Panel.Arrange(new Rect(finalSize));
             return finalSize;
         }
 
@@ -134,33 +134,33 @@ namespace Perspex.Controls.Presenters
         /// </summary>
         private void CreatePanel()
         {
-            this.ClearVisualChildren();
-            this.Panel = this.ItemsPanel.Build();
-            this.Panel.SetValue(TemplatedParentProperty, this.TemplatedParent);
+            ClearVisualChildren();
+            Panel = ItemsPanel.Build();
+            Panel.SetValue(TemplatedParentProperty, TemplatedParent);
 
-            if (!this.Panel.IsSet(KeyboardNavigation.DirectionalNavigationProperty))
+            if (!Panel.IsSet(KeyboardNavigation.DirectionalNavigationProperty))
             {
                 KeyboardNavigation.SetDirectionalNavigation(
-                    (InputElement)this.Panel,
+                    (InputElement)Panel,
                     KeyboardNavigationMode.Contained);
             }
 
-            this.AddVisualChild(this.Panel);
+            AddVisualChild(Panel);
 
             var logicalHost = this.FindReparentingHost();
 
             if (logicalHost != null)
             {
-                ((IReparentingControl)this.Panel).ReparentLogicalChildren(
+                ((IReparentingControl)Panel).ReparentLogicalChildren(
                     logicalHost,
                     logicalHost.LogicalChildren);
             }
 
             KeyboardNavigation.SetTabNavigation(
-                (InputElement)this.Panel,
+                (InputElement)Panel,
                 KeyboardNavigation.GetTabNavigation(this));
             _createdPanel = true;
-            this.CreateItemsAndListenForChanges(this.Items);
+            CreateItemsAndListenForChanges(Items);
         }
 
         /// <summary>
@@ -171,14 +171,14 @@ namespace Perspex.Controls.Presenters
         {
             if (items != null)
             {
-                this.Panel.Children.AddRange(
-                    this.ItemContainerGenerator.CreateContainers(0, this.Items, null));
+                Panel.Children.AddRange(
+                    ItemContainerGenerator.CreateContainers(0, Items, null));
 
                 INotifyCollectionChanged incc = items as INotifyCollectionChanged;
 
                 if (incc != null)
                 {
-                    incc.CollectionChanged += this.ItemsCollectionChanged;
+                    incc.CollectionChanged += ItemsCollectionChanged;
                 }
             }
         }
@@ -191,24 +191,24 @@ namespace Perspex.Controls.Presenters
         {
             if (_createdPanel)
             {
-                var generator = this.ItemContainerGenerator;
+                var generator = ItemContainerGenerator;
 
                 if (e.OldValue != null)
                 {
                     generator.ClearContainers();
-                    this.Panel.Children.Clear();
+                    Panel.Children.Clear();
 
                     INotifyCollectionChanged incc = e.OldValue as INotifyCollectionChanged;
 
                     if (incc != null)
                     {
-                        incc.CollectionChanged -= this.ItemsCollectionChanged;
+                        incc.CollectionChanged -= ItemsCollectionChanged;
                     }
                 }
 
-                if (this.Panel != null)
+                if (Panel != null)
                 {
-                    this.CreateItemsAndListenForChanges((IEnumerable)e.NewValue);
+                    CreateItemsAndListenForChanges((IEnumerable)e.NewValue);
                 }
             }
         }
@@ -222,23 +222,23 @@ namespace Perspex.Controls.Presenters
         {
             if (_createdPanel)
             {
-                var generator = this.ItemContainerGenerator;
+                var generator = ItemContainerGenerator;
 
                 // TODO: Handle Move and Replace etc.
                 switch (e.Action)
                 {
                     case NotifyCollectionChangedAction.Add:
-                        this.Panel.Children.AddRange(
+                        Panel.Children.AddRange(
                             generator.CreateContainers(e.NewStartingIndex, e.NewItems, null));
                         break;
 
                     case NotifyCollectionChangedAction.Remove:
-                        this.Panel.Children.RemoveAll(
+                        Panel.Children.RemoveAll(
                             generator.RemoveContainers(e.OldStartingIndex, e.OldItems));
                         break;
                 }
 
-                this.InvalidateMeasure();
+                InvalidateMeasure();
             }
         }
     }

+ 25 - 25
src/Perspex.Controls/Presenters/ScrollContentPresenter.cs

@@ -28,46 +28,46 @@ namespace Perspex.Controls.Presenters
         static ScrollContentPresenter()
         {
             ClipToBoundsProperty.OverrideDefaultValue(typeof(ScrollContentPresenter), true);
-            Control.AffectsArrange(OffsetProperty);
+            AffectsArrange(OffsetProperty);
         }
 
         public ScrollContentPresenter()
         {
-            this.AddHandler(Control.RequestBringIntoViewEvent, this.BringIntoViewRequested);
+            AddHandler(RequestBringIntoViewEvent, BringIntoViewRequested);
         }
 
         public Size Extent
         {
-            get { return this.GetValue(ExtentProperty); }
-            private set { this.SetValue(ExtentProperty, value); }
+            get { return GetValue(ExtentProperty); }
+            private set { SetValue(ExtentProperty, value); }
         }
 
         public Vector Offset
         {
-            get { return this.GetValue(OffsetProperty); }
-            set { this.SetValue(OffsetProperty, value); }
+            get { return GetValue(OffsetProperty); }
+            set { SetValue(OffsetProperty, value); }
         }
 
         public Size Viewport
         {
-            get { return this.GetValue(ViewportProperty); }
-            private set { this.SetValue(ViewportProperty, value); }
+            get { return GetValue(ViewportProperty); }
+            private set { SetValue(ViewportProperty, value); }
         }
 
         public bool CanScrollHorizontally
         {
-            get { return this.GetValue(CanScrollHorizontallyProperty); }
+            get { return GetValue(CanScrollHorizontallyProperty); }
         }
 
         protected override Size MeasureOverride(Size availableSize)
         {
-            var content = this.Content as ILayoutable;
+            var content = Content as ILayoutable;
 
             if (content != null)
             {
                 var measureSize = new Size(double.PositiveInfinity, double.PositiveInfinity);
 
-                if (!this.CanScrollHorizontally)
+                if (!CanScrollHorizontally)
                 {
                     measureSize = measureSize.WithWidth(availableSize.Width);
                 }
@@ -79,7 +79,7 @@ namespace Perspex.Controls.Presenters
             }
             else
             {
-                return this.Extent = new Size();
+                return Extent = new Size();
             }
         }
 
@@ -87,15 +87,15 @@ namespace Perspex.Controls.Presenters
         {
             var child = this.GetVisualChildren().SingleOrDefault() as ILayoutable;
 
-            this.Viewport = finalSize;
-            this.Extent = _measuredExtent;
+            Viewport = finalSize;
+            Extent = _measuredExtent;
 
             if (child != null)
             {
                 var size = new Size(
                     Math.Max(finalSize.Width, child.DesiredSize.Width),
                     Math.Max(finalSize.Height, child.DesiredSize.Height));
-                child.Arrange(new Rect((Point)(-this.Offset), size));
+                child.Arrange(new Rect((Point)(-Offset), size));
                 return finalSize;
             }
 
@@ -104,12 +104,12 @@ namespace Perspex.Controls.Presenters
 
         protected override void OnPointerWheelChanged(PointerWheelEventArgs e)
         {
-            if (this.Extent.Height > this.Viewport.Height)
+            if (Extent.Height > Viewport.Height)
             {
-                var y = this.Offset.Y + (-e.Delta.Y * 50);
+                var y = Offset.Y + (-e.Delta.Y * 50);
                 y = Math.Max(y, 0);
-                y = Math.Min(y, this.Extent.Height - this.Viewport.Height);
-                this.Offset = new Vector(this.Offset.X, y);
+                y = Math.Min(y, Extent.Height - Viewport.Height);
+                Offset = new Vector(Offset.X, y);
                 e.Handled = true;
             }
         }
@@ -118,11 +118,11 @@ namespace Perspex.Controls.Presenters
         {
             var transform = e.TargetObject.TransformToVisual(this.GetVisualChildren().Single());
             var rect = e.TargetRect * transform;
-            var offset = this.Offset;
+            var offset = Offset;
 
-            if (rect.Bottom > offset.Y + this.Viewport.Height)
+            if (rect.Bottom > offset.Y + Viewport.Height)
             {
-                offset = offset.WithY(rect.Bottom - this.Viewport.Height);
+                offset = offset.WithY(rect.Bottom - Viewport.Height);
                 e.Handled = true;
             }
 
@@ -132,9 +132,9 @@ namespace Perspex.Controls.Presenters
                 e.Handled = true;
             }
 
-            if (rect.Right > offset.X + this.Viewport.Width)
+            if (rect.Right > offset.X + Viewport.Width)
             {
-                offset = offset.WithX(rect.Right - this.Viewport.Width);
+                offset = offset.WithX(rect.Right - Viewport.Width);
                 e.Handled = true;
             }
 
@@ -144,7 +144,7 @@ namespace Perspex.Controls.Presenters
                 e.Handled = true;
             }
 
-            this.Offset = offset;
+            Offset = offset;
         }
     }
 }

+ 30 - 30
src/Perspex.Controls/Presenters/TextPresenter.cs

@@ -31,54 +31,54 @@ namespace Perspex.Controls.Presenters
         {
             _caretTimer = new DispatcherTimer();
             _caretTimer.Interval = TimeSpan.FromMilliseconds(500);
-            _caretTimer.Tick += this.CaretTimerTick;
+            _caretTimer.Tick += CaretTimerTick;
 
-            _canScrollHorizontally = this.GetObservable(TextWrappingProperty)
+            _canScrollHorizontally = GetObservable(TextWrappingProperty)
                 .Select(x => x == TextWrapping.NoWrap);
 
             Observable.Merge(
-                this.GetObservable(SelectionStartProperty),
-                this.GetObservable(SelectionEndProperty))
-                .Subscribe(_ => this.InvalidateFormattedText());
+                GetObservable(SelectionStartProperty),
+                GetObservable(SelectionEndProperty))
+                .Subscribe(_ => InvalidateFormattedText());
 
-            this.GetObservable(TextPresenter.CaretIndexProperty)
-                .Subscribe(this.CaretIndexChanged);
+            GetObservable(CaretIndexProperty)
+                .Subscribe(CaretIndexChanged);
         }
 
         public int CaretIndex
         {
-            get { return this.GetValue(CaretIndexProperty); }
-            set { this.SetValue(CaretIndexProperty, value); }
+            get { return GetValue(CaretIndexProperty); }
+            set { SetValue(CaretIndexProperty, value); }
         }
 
         public int SelectionStart
         {
-            get { return this.GetValue(SelectionStartProperty); }
-            set { this.SetValue(SelectionStartProperty, value); }
+            get { return GetValue(SelectionStartProperty); }
+            set { SetValue(SelectionStartProperty, value); }
         }
 
         public int SelectionEnd
         {
-            get { return this.GetValue(SelectionEndProperty); }
-            set { this.SetValue(SelectionEndProperty, value); }
+            get { return GetValue(SelectionEndProperty); }
+            set { SetValue(SelectionEndProperty, value); }
         }
 
         public int GetCaretIndex(Point point)
         {
-            var hit = this.FormattedText.HitTestPoint(point);
+            var hit = FormattedText.HitTestPoint(point);
             return hit.TextPosition + (hit.IsTrailing ? 1 : 0);
         }
 
         public override void Render(IDrawingContext context)
         {
-            var selectionStart = this.SelectionStart;
-            var selectionEnd = this.SelectionEnd;
+            var selectionStart = SelectionStart;
+            var selectionEnd = SelectionEnd;
 
             if (selectionStart != selectionEnd)
             {
                 var start = Math.Min(selectionStart, selectionEnd);
                 var length = Math.Max(selectionStart, selectionEnd) - start;
-                var rects = this.FormattedText.HitTestTextRange(start, length);
+                var rects = FormattedText.HitTestTextRange(start, length);
 
                 var brush = new SolidColorBrush(0xff086f9e);
 
@@ -92,7 +92,7 @@ namespace Perspex.Controls.Presenters
 
             if (selectionStart == selectionEnd)
             {
-                var charPos = this.FormattedText.HitTestTextPosition(this.CaretIndex);
+                var charPos = FormattedText.HitTestTextPosition(CaretIndex);
                 Brush caretBrush = Brushes.Black;
 
                 if (_caretBlink)
@@ -113,14 +113,14 @@ namespace Perspex.Controls.Presenters
         {
             _caretBlink = true;
             _caretTimer.Start();
-            this.InvalidateVisual();
+            InvalidateVisual();
         }
 
         public void HideCaret()
         {
             _caretBlink = false;
             _caretTimer.Stop();
-            this.InvalidateVisual();
+            InvalidateVisual();
         }
 
         internal void CaretIndexChanged(int caretIndex)
@@ -130,9 +130,9 @@ namespace Perspex.Controls.Presenters
                 _caretBlink = true;
                 _caretTimer.Stop();
                 _caretTimer.Start();
-                this.InvalidateVisual();
+                InvalidateVisual();
 
-                var rect = this.FormattedText.HitTestTextPosition(caretIndex);
+                var rect = FormattedText.HitTestTextPosition(caretIndex);
                 this.BringIntoView(rect);
             }
         }
@@ -140,8 +140,8 @@ namespace Perspex.Controls.Presenters
         protected override FormattedText CreateFormattedText(Size constraint)
         {
             var result = base.CreateFormattedText(constraint);
-            var selectionStart = this.SelectionStart;
-            var selectionEnd = this.SelectionEnd;
+            var selectionStart = SelectionStart;
+            var selectionEnd = SelectionEnd;
             var start = Math.Min(selectionStart, selectionEnd);
             var length = Math.Max(selectionStart, selectionEnd) - start;
 
@@ -155,7 +155,7 @@ namespace Perspex.Controls.Presenters
 
         protected override Size MeasureOverride(Size availableSize)
         {
-            var text = this.Text;
+            var text = Text;
 
             if (!string.IsNullOrWhiteSpace(text))
             {
@@ -166,11 +166,11 @@ namespace Perspex.Controls.Presenters
                 // TODO: Pretty sure that measuring "X" isn't the right way to do this...
                 using (var formattedText = new FormattedText(
                     "X",
-                    this.FontFamily,
-                    this.FontSize,
-                    this.FontStyle,
+                    FontFamily,
+                    FontSize,
+                    FontStyle,
                     TextAlignment.Left,
-                    this.FontWeight))
+                    FontWeight))
                 {
                     return formattedText.Measure();
                 }
@@ -180,7 +180,7 @@ namespace Perspex.Controls.Presenters
         private void CaretTimerTick(object sender, EventArgs e)
         {
             _caretBlink = !_caretBlink;
-            this.InvalidateVisual();
+            InvalidateVisual();
         }
     }
 }

+ 19 - 19
src/Perspex.Controls/Primitives/AccessText.cs

@@ -37,7 +37,7 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public AccessText()
         {
-            this.GetObservable(TextProperty).Subscribe(this.TextChanged);
+            GetObservable(TextProperty).Subscribe(TextChanged);
         }
 
         /// <summary>
@@ -54,8 +54,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public bool ShowAccessKey
         {
-            get { return this.GetValue(ShowAccessKeyProperty); }
-            set { this.SetValue(ShowAccessKeyProperty, value); }
+            get { return GetValue(ShowAccessKeyProperty); }
+            set { SetValue(ShowAccessKeyProperty, value); }
         }
 
         /// <summary>
@@ -66,14 +66,14 @@ namespace Perspex.Controls.Primitives
         {
             base.Render(context);
 
-            int underscore = this.Text?.IndexOf('_') ?? -1;
+            int underscore = Text?.IndexOf('_') ?? -1;
 
-            if (underscore != -1 && this.ShowAccessKey)
+            if (underscore != -1 && ShowAccessKey)
             {
-                var rect = this.FormattedText.HitTestTextPosition(underscore);
+                var rect = FormattedText.HitTestTextPosition(underscore);
                 var offset = new Vector(0, -0.5);
                 context.DrawLine(
-                    new Pen(this.Foreground, 1),
+                    new Pen(Foreground, 1),
                     rect.BottomLeft + offset,
                     rect.BottomRight + offset);
             }
@@ -87,12 +87,12 @@ namespace Perspex.Controls.Primitives
         protected override FormattedText CreateFormattedText(Size constraint)
         {
             var result = new FormattedText(
-                this.StripAccessKey(this.Text),
-                this.FontFamily,
-                this.FontSize,
-                this.FontStyle,
-                this.TextAlignment,
-                this.FontWeight);
+                StripAccessKey(Text),
+                FontFamily,
+                FontSize,
+                FontStyle,
+                TextAlignment,
+                FontWeight);
             result.Constraint = constraint;
             return result;
         }
@@ -117,9 +117,9 @@ namespace Perspex.Controls.Primitives
             base.OnAttachedToVisualTree(root);
             _accessKeys = (root as IInputRoot)?.AccessKeyHandler;
 
-            if (_accessKeys != null && this.AccessKey != 0)
+            if (_accessKeys != null && AccessKey != 0)
             {
-                _accessKeys.Register(this.AccessKey, this);
+                _accessKeys.Register(AccessKey, this);
             }
         }
 
@@ -131,7 +131,7 @@ namespace Perspex.Controls.Primitives
         {
             base.OnDetachedFromVisualTree(root);
 
-            if (_accessKeys != null && this.AccessKey != 0)
+            if (_accessKeys != null && AccessKey != 0)
             {
                 _accessKeys.Unregister(this);
                 _accessKeys = null;
@@ -175,11 +175,11 @@ namespace Perspex.Controls.Primitives
                 }
             }
 
-            this.AccessKey = key;
+            AccessKey = key;
 
-            if (_accessKeys != null && this.AccessKey != 0)
+            if (_accessKeys != null && AccessKey != 0)
             {
-                _accessKeys.Register(this.AccessKey, this);
+                _accessKeys.Register(AccessKey, this);
             }
         }
     }

+ 6 - 6
src/Perspex.Controls/Primitives/AdornerDecorator.cs

@@ -7,10 +7,10 @@ namespace Perspex.Controls.Primitives
     {
         public AdornerDecorator()
         {
-            this.AdornerLayer = new AdornerLayer();
-            ((ISetLogicalParent)this.AdornerLayer).SetParent(this);
-            this.AdornerLayer.ZIndex = int.MaxValue;
-            this.AddVisualChild(this.AdornerLayer);
+            AdornerLayer = new AdornerLayer();
+            ((ISetLogicalParent)AdornerLayer).SetParent(this);
+            AdornerLayer.ZIndex = int.MaxValue;
+            AddVisualChild(AdornerLayer);
         }
 
         public AdornerLayer AdornerLayer
@@ -20,13 +20,13 @@ namespace Perspex.Controls.Primitives
 
         protected override Size MeasureOverride(Size availableSize)
         {
-            this.AdornerLayer.Measure(availableSize);
+            AdornerLayer.Measure(availableSize);
             return base.MeasureOverride(availableSize);
         }
 
         protected override Size ArrangeOverride(Size finalSize)
         {
-            this.AdornerLayer.Arrange(new Rect(finalSize));
+            AdornerLayer.Arrange(new Rect(finalSize));
             return base.ArrangeOverride(finalSize);
         }
     }

+ 6 - 6
src/Perspex.Controls/Primitives/AdornerLayer.cs

@@ -27,7 +27,7 @@ namespace Perspex.Controls.Primitives
 
         public AdornerLayer()
         {
-            this.Children.CollectionChanged += this.ChildrenCollectionChanged;
+            Children.CollectionChanged += ChildrenCollectionChanged;
         }
 
         public static Visual GetAdornedElement(Visual adorner)
@@ -50,9 +50,9 @@ namespace Perspex.Controls.Primitives
 
         protected override Size ArrangeOverride(Size finalSize)
         {
-            var parent = this.Parent;
+            var parent = Parent;
 
-            foreach (var child in this.Children)
+            foreach (var child in Children)
             {
                 var info = (AdornedElementInfo)child.GetValue(s_adornedElementInfoProperty);
 
@@ -88,13 +88,13 @@ namespace Perspex.Controls.Primitives
                 case NotifyCollectionChangedAction.Add:
                     foreach (Visual i in e.NewItems)
                     {
-                        this.UpdateAdornedElement(i, i.GetValue(AdornedElementProperty));
+                        UpdateAdornedElement(i, i.GetValue(AdornedElementProperty));
                     }
 
                     break;
             }
 
-            this.InvalidateArrange();
+            InvalidateArrange();
         }
 
         private void UpdateAdornedElement(Visual adorner, Visual adorned)
@@ -122,7 +122,7 @@ namespace Perspex.Controls.Primitives
                 info.Subscription = _tracker.Track(adorned).Subscribe(x =>
                 {
                     info.Bounds = x;
-                    this.InvalidateArrange();
+                    InvalidateArrange();
                 });
             }
         }

+ 2 - 2
src/Perspex.Controls/Primitives/HeaderedContentControl.cs

@@ -19,8 +19,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public object Header
         {
-            get { return this.GetValue(HeaderProperty); }
-            set { this.SetValue(HeaderProperty, value); }
+            get { return GetValue(HeaderProperty); }
+            set { SetValue(HeaderProperty, value); }
         }
     }
 }

+ 2 - 2
src/Perspex.Controls/Primitives/HeaderedItemsControl.cs

@@ -10,8 +10,8 @@ namespace Perspex.Controls.Primitives
 
         public object Header
         {
-            get { return this.GetValue(HeaderProperty); }
-            set { this.SetValue(HeaderProperty, value); }
+            get { return GetValue(HeaderProperty); }
+            set { SetValue(HeaderProperty, value); }
         }
     }
 }

+ 38 - 38
src/Perspex.Controls/Primitives/Popup.cs

@@ -83,8 +83,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public Control Child
         {
-            get { return this.GetValue(ChildProperty); }
-            set { this.SetValue(ChildProperty, value); }
+            get { return GetValue(ChildProperty); }
+            set { SetValue(ChildProperty, value); }
         }
 
         /// <summary>
@@ -105,8 +105,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public bool IsOpen
         {
-            get { return this.GetValue(IsOpenProperty); }
-            set { this.SetValue(IsOpenProperty, value); }
+            get { return GetValue(IsOpenProperty); }
+            set { SetValue(IsOpenProperty, value); }
         }
 
         /// <summary>
@@ -114,8 +114,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public PlacementMode PlacementMode
         {
-            get { return this.GetValue(PlacementModeProperty); }
-            set { this.SetValue(PlacementModeProperty, value); }
+            get { return GetValue(PlacementModeProperty); }
+            set { SetValue(PlacementModeProperty, value); }
         }
 
         /// <summary>
@@ -123,8 +123,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public Control PlacementTarget
         {
-            get { return this.GetValue(PlacementTargetProperty); }
-            set { this.SetValue(PlacementTargetProperty, value); }
+            get { return GetValue(PlacementTargetProperty); }
+            set { SetValue(PlacementTargetProperty, value); }
         }
 
         /// <summary>
@@ -141,8 +141,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public bool StaysOpen
         {
-            get { return this.GetValue(StaysOpenProperty); }
-            set { this.SetValue(StaysOpenProperty, value); }
+            get { return GetValue(StaysOpenProperty); }
+            set { SetValue(StaysOpenProperty, value); }
         }
 
         /// <summary>
@@ -160,34 +160,34 @@ namespace Perspex.Controls.Primitives
         {
             if (_popupRoot == null)
             {
-                _popupRoot = new PopupRoot(this.DependencyResolver)
+                _popupRoot = new PopupRoot(DependencyResolver)
                 {
-                    [~PopupRoot.ContentProperty] = this[~ChildProperty],
-                    [~PopupRoot.WidthProperty] = this[~WidthProperty],
-                    [~PopupRoot.HeightProperty] = this[~HeightProperty],
-                    [~PopupRoot.MinWidthProperty] = this[~MinWidthProperty],
-                    [~PopupRoot.MaxWidthProperty] = this[~MaxWidthProperty],
-                    [~PopupRoot.MinHeightProperty] = this[~MinHeightProperty],
-                    [~PopupRoot.MaxHeightProperty] = this[~MaxHeightProperty],
+                    [~ContentControl.ContentProperty] = this[~ChildProperty],
+                    [~WidthProperty] = this[~WidthProperty],
+                    [~HeightProperty] = this[~HeightProperty],
+                    [~MinWidthProperty] = this[~MinWidthProperty],
+                    [~MaxWidthProperty] = this[~MaxWidthProperty],
+                    [~MinHeightProperty] = this[~MinHeightProperty],
+                    [~MaxHeightProperty] = this[~MaxHeightProperty],
                 };
 
                 ((ISetLogicalParent)_popupRoot).SetParent(this);
             }
 
-            _popupRoot.SetPosition(this.GetPosition());
-            _popupRoot.AddHandler(PopupRoot.PointerPressedEvent, this.MaybeClose, RoutingStrategies.Bubble, true);
+            _popupRoot.SetPosition(GetPosition());
+            _popupRoot.AddHandler(PointerPressedEvent, MaybeClose, RoutingStrategies.Bubble, true);
 
             if (_topLevel != null)
             {
-                _topLevel.Deactivated += this.MaybeClose;
-                _topLevel.AddHandler(TopLevel.PointerPressedEvent, this.MaybeClose, RoutingStrategies.Tunnel);
+                _topLevel.Deactivated += MaybeClose;
+                _topLevel.AddHandler(PointerPressedEvent, MaybeClose, RoutingStrategies.Tunnel);
             }
 
-            this.PopupRootCreated?.Invoke(this, EventArgs.Empty);
+            PopupRootCreated?.Invoke(this, EventArgs.Empty);
 
             _popupRoot.Show();
-            this.IsOpen = true;
-            this.Opened?.Invoke(this, EventArgs.Empty);
+            IsOpen = true;
+            Opened?.Invoke(this, EventArgs.Empty);
         }
 
         /// <summary>
@@ -197,14 +197,14 @@ namespace Perspex.Controls.Primitives
         {
             if (_popupRoot != null)
             {
-                this._popupRoot.PointerPressed -= this.MaybeClose;
-                _topLevel.RemoveHandler(TopLevel.PointerPressedEvent, this.MaybeClose);
-                _topLevel.Deactivated -= this.MaybeClose;
+                _popupRoot.PointerPressed -= MaybeClose;
+                _topLevel.RemoveHandler(PointerPressedEvent, MaybeClose);
+                _topLevel.Deactivated -= MaybeClose;
                 _popupRoot.Hide();
             }
 
-            this.IsOpen = false;
-            this.Closed?.Invoke(this, EventArgs.Empty);
+            IsOpen = false;
+            Closed?.Invoke(this, EventArgs.Empty);
         }
 
         /// <summary>
@@ -245,11 +245,11 @@ namespace Perspex.Controls.Primitives
         {
             if ((bool)e.NewValue)
             {
-                this.Open();
+                Open();
             }
             else
             {
-                this.Close();
+                Close();
             }
         }
 
@@ -259,7 +259,7 @@ namespace Perspex.Controls.Primitives
         /// <param name="e">The event args.</param>
         private void ChildChanged(PerspexPropertyChangedEventArgs e)
         {
-            this.LogicalChildren.Clear();
+            LogicalChildren.Clear();
 
             if (e.OldValue != null)
             {
@@ -269,7 +269,7 @@ namespace Perspex.Controls.Primitives
             if (e.NewValue != null)
             {
                 ((ISetLogicalParent)e.NewValue).SetParent(this);
-                this.LogicalChildren.Add((ILogical)e.NewValue);
+                LogicalChildren.Add((ILogical)e.NewValue);
             }
         }
 
@@ -279,12 +279,12 @@ namespace Perspex.Controls.Primitives
         /// <returns>The popup's position in screen coordinates.</returns>
         private Point GetPosition()
         {
-            var target = this.PlacementTarget ?? this.GetVisualParent<Control>();
+            var target = PlacementTarget ?? this.GetVisualParent<Control>();
             Point point;
 
             if (target != null)
             {
-                switch (this.PlacementMode)
+                switch (PlacementMode)
                 {
                     case PlacementMode.Bottom:
                         point = new Point(0, target.Bounds.Height);
@@ -312,9 +312,9 @@ namespace Perspex.Controls.Primitives
         /// <param name="e">The event args.</param>
         private void MaybeClose(object sender, EventArgs e)
         {
-            if (!this.StaysOpen)
+            if (!StaysOpen)
             {
-                this.Close();
+                Close();
             }
         }
     }

+ 14 - 14
src/Perspex.Controls/Primitives/PopupRoot.cs

@@ -44,7 +44,7 @@ namespace Perspex.Controls.Primitives
         public PopupRoot(IDependencyResolver dependencyResolver)
             : base(Locator.Current.GetService<IPopupImpl>(), dependencyResolver)
         {
-            this.GetObservable(ParentProperty).Subscribe(x => this.InheritanceParent = (PerspexObject)x);
+            GetObservable(ParentProperty).Subscribe(x => InheritanceParent = (PerspexObject)x);
         }
 
         /// <summary>
@@ -63,7 +63,7 @@ namespace Perspex.Controls.Primitives
         /// </remarks>
         IInteractive IInteractive.InteractiveParent
         {
-            get { return this.Parent; }
+            get { return Parent; }
         }
 
         /// <summary>
@@ -71,7 +71,7 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         IVisual IHostedVisualTreeRoot.Host
         {
-            get { return this.Parent; }
+            get { return Parent; }
         }
 
         /// <summary>
@@ -80,7 +80,7 @@ namespace Perspex.Controls.Primitives
         /// <param name="p">The position.</param>
         public void SetPosition(Point p)
         {
-            this.PlatformImpl.SetPosition(p);
+            PlatformImpl.SetPosition(p);
         }
 
         /// <summary>
@@ -88,8 +88,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public void Hide()
         {
-            this.PlatformImpl.Hide();
-            this.IsVisible = false;
+            PlatformImpl.Hide();
+            IsVisible = false;
         }
 
         /// <summary>
@@ -97,9 +97,9 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public void Show()
         {
-            this.PlatformImpl.Show();
-            this.LayoutManager?.ExecuteLayoutPass();
-            this.IsVisible = true;
+            PlatformImpl.Show();
+            LayoutManager?.ExecuteLayoutPass();
+            IsVisible = true;
         }
 
         /// <inheritdoc/>
@@ -107,7 +107,7 @@ namespace Perspex.Controls.Primitives
         {
             base.OnTemplateApplied();
 
-            if (this.Parent.TemplatedParent != null)
+            if (Parent.TemplatedParent != null)
             {
                 if (_presenterSubscription != null)
                 {
@@ -115,19 +115,19 @@ namespace Perspex.Controls.Primitives
                     _presenterSubscription = null;
                 }
 
-                var presenter = this.Presenter;
+                var presenter = Presenter;
 
                 if (presenter != null)
                 {
                     presenter.GetObservable(ContentPresenter.ChildProperty)
-                        .Subscribe(this.SetTemplatedParentAndApplyChildTemplates);
+                        .Subscribe(SetTemplatedParentAndApplyChildTemplates);
                 }
             }
         }
 
         private void SetTemplatedParentAndApplyChildTemplates(IControl control)
         {
-            var templatedParent = this.Parent.TemplatedParent;
+            var templatedParent = Parent.TemplatedParent;
 
             if (control.TemplatedParent == null)
             {
@@ -140,7 +140,7 @@ namespace Perspex.Controls.Primitives
             {
                 foreach (IControl child in control.GetVisualChildren())
                 {
-                    this.SetTemplatedParentAndApplyChildTemplates(child);
+                    SetTemplatedParentAndApplyChildTemplates(child);
                 }
             }
         }

+ 6 - 6
src/Perspex.Controls/Primitives/RangeBase.cs

@@ -50,8 +50,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public double Minimum
         {
-            get { return this.GetValue(MinimumProperty); }
-            set { this.SetValue(MinimumProperty, value); }
+            get { return GetValue(MinimumProperty); }
+            set { SetValue(MinimumProperty, value); }
         }
 
         /// <summary>
@@ -59,8 +59,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public double Maximum
         {
-            get { return this.GetValue(MaximumProperty); }
-            set { this.SetValue(MaximumProperty, value); }
+            get { return GetValue(MaximumProperty); }
+            set { SetValue(MaximumProperty, value); }
         }
 
         /// <summary>
@@ -68,8 +68,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public double Value
         {
-            get { return this.GetValue(ValueProperty); }
-            set { this.SetValue(ValueProperty, value); }
+            get { return GetValue(ValueProperty); }
+            set { SetValue(ValueProperty, value); }
         }
 
         /// <summary>

+ 15 - 15
src/Perspex.Controls/Primitives/ScrollBar.cs

@@ -36,12 +36,12 @@ namespace Perspex.Controls.Primitives
         public ScrollBar()
         {
             var isVisible = Observable.Merge(
-                this.GetObservable(MinimumProperty).Select(_ => Unit.Default),
-                this.GetObservable(MaximumProperty).Select(_ => Unit.Default),
-                this.GetObservable(ViewportSizeProperty).Select(_ => Unit.Default),
-                this.GetObservable(VisibilityProperty).Select(_ => Unit.Default))
-                .Select(_ => this.CalculateIsVisible());
-            this.Bind(ScrollBar.IsVisibleProperty, isVisible, BindingPriority.Style);
+                GetObservable(MinimumProperty).Select(_ => Unit.Default),
+                GetObservable(MaximumProperty).Select(_ => Unit.Default),
+                GetObservable(ViewportSizeProperty).Select(_ => Unit.Default),
+                GetObservable(VisibilityProperty).Select(_ => Unit.Default))
+                .Select(_ => CalculateIsVisible());
+            Bind(IsVisibleProperty, isVisible, BindingPriority.Style);
         }
 
         /// <summary>
@@ -49,8 +49,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public double ViewportSize
         {
-            get { return this.GetValue(ViewportSizeProperty); }
-            set { this.SetValue(ViewportSizeProperty, value); }
+            get { return GetValue(ViewportSizeProperty); }
+            set { SetValue(ViewportSizeProperty, value); }
         }
 
         /// <summary>
@@ -59,8 +59,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public ScrollBarVisibility Visibility
         {
-            get { return this.GetValue(VisibilityProperty); }
-            set { this.SetValue(VisibilityProperty, value); }
+            get { return GetValue(VisibilityProperty); }
+            set { SetValue(VisibilityProperty, value); }
         }
 
         /// <summary>
@@ -68,8 +68,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public Orientation Orientation
         {
-            get { return this.GetValue(OrientationProperty); }
-            set { this.SetValue(OrientationProperty, value); }
+            get { return GetValue(OrientationProperty); }
+            set { SetValue(OrientationProperty, value); }
         }
 
         /// <inheritdoc/>
@@ -84,7 +84,7 @@ namespace Perspex.Controls.Primitives
         /// <returns>The scrollbar's visibility.</returns>
         private bool CalculateIsVisible()
         {
-            switch (this.Visibility)
+            switch (Visibility)
             {
                 case ScrollBarVisibility.Visible:
                     return true;
@@ -93,8 +93,8 @@ namespace Perspex.Controls.Primitives
                     return false;
 
                 case ScrollBarVisibility.Auto:
-                    var viewportSize = this.ViewportSize;
-                    return double.IsNaN(viewportSize) || viewportSize < this.Maximum - this.Minimum;
+                    var viewportSize = ViewportSize;
+                    return double.IsNaN(viewportSize) || viewportSize < Maximum - Minimum;
 
                 default:
                     throw new InvalidOperationException("Invalid value for ScrollBar.Visibility.");

+ 39 - 39
src/Perspex.Controls/Primitives/SelectingItemsControl.cs

@@ -67,7 +67,7 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public SelectingItemsControl()
         {
-            this.ItemContainerGenerator.ContainersInitialized.Subscribe(this.ContainersInitialized);
+            ItemContainerGenerator.ContainersInitialized.Subscribe(ContainersInitialized);
         }
 
         /// <summary>
@@ -76,8 +76,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public bool AutoSelect
         {
-            get { return this.GetValue(AutoSelectProperty); }
-            set { this.SetValue(AutoSelectProperty, value); }
+            get { return GetValue(AutoSelectProperty); }
+            set { SetValue(AutoSelectProperty, value); }
         }
 
         /// <summary>
@@ -85,8 +85,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public int SelectedIndex
         {
-            get { return this.GetValue(SelectedIndexProperty); }
-            set { this.SetValue(SelectedIndexProperty, value); }
+            get { return GetValue(SelectedIndexProperty); }
+            set { SetValue(SelectedIndexProperty, value); }
         }
 
         /// <summary>
@@ -94,8 +94,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public object SelectedItem
         {
-            get { return this.GetValue(SelectedItemProperty); }
-            set { this.SetValue(SelectedItemProperty, value); }
+            get { return GetValue(SelectedItemProperty); }
+            set { SetValue(SelectedItemProperty, value); }
         }
 
         /// <inheritdoc/>
@@ -103,13 +103,13 @@ namespace Perspex.Controls.Primitives
         {
             base.ItemsChanged(e);
 
-            if (this.SelectedIndex != -1)
+            if (SelectedIndex != -1)
             {
-                this.SelectedIndex = IndexOf((IEnumerable)e.NewValue, this.SelectedItem);
+                SelectedIndex = IndexOf((IEnumerable)e.NewValue, SelectedItem);
             }
-            else if (this.AutoSelect && this.Items != null & this.Items.Cast<object>().Any())
+            else if (AutoSelect && Items != null & Items.Cast<object>().Any())
             {
-                this.SelectedIndex = 0;
+                SelectedIndex = 0;
             }
         }
 
@@ -121,34 +121,34 @@ namespace Perspex.Controls.Primitives
             switch (e.Action)
             {
                 case NotifyCollectionChangedAction.Add:
-                    if (this.AutoSelect && this.SelectedIndex == -1)
+                    if (AutoSelect && SelectedIndex == -1)
                     {
-                        this.SelectedIndex = 0;
+                        SelectedIndex = 0;
                     }
 
                     break;
 
                 case NotifyCollectionChangedAction.Remove:
                 case NotifyCollectionChangedAction.Replace:
-                    var selectedIndex = this.SelectedIndex;
+                    var selectedIndex = SelectedIndex;
 
                     if (selectedIndex >= e.OldStartingIndex &&
                         selectedIndex < e.OldStartingIndex + e.OldItems.Count)
                     {
-                        if (!this.AutoSelect)
+                        if (!AutoSelect)
                         {
-                            this.SelectedIndex = -1;
+                            SelectedIndex = -1;
                         }
                         else
                         {
-                            this.LostSelection();
+                            LostSelection();
                         }
                     }
 
                     break;
 
                 case NotifyCollectionChangedAction.Reset:
-                    this.SelectedIndex = IndexOf(e.NewItems, this.SelectedItem);
+                    SelectedIndex = IndexOf(e.NewItems, SelectedItem);
                     break;
             }
         }
@@ -161,7 +161,7 @@ namespace Perspex.Controls.Primitives
             if (e.NavigationMethod == NavigationMethod.Pointer ||
                 e.NavigationMethod == NavigationMethod.Directional)
             {
-                this.TrySetSelectionFromContainerEvent(e.Source, true);
+                TrySetSelectionFromContainerEvent(e.Source, true);
             }
         }
 
@@ -194,7 +194,7 @@ namespace Perspex.Controls.Primitives
 
                     foreach (var i in items)
                     {
-                        if (object.Equals(i, item))
+                        if (Equals(i, item))
                         {
                             return index;
                         }
@@ -264,12 +264,12 @@ namespace Perspex.Controls.Primitives
         /// <param name="containers">The containers.</param>
         private void ContainersInitialized(ItemContainers containers)
         {
-            var selectedIndex = this.SelectedIndex;
+            var selectedIndex = SelectedIndex;
             var selectedContainer = containers.Items.OfType<ISelectable>().FirstOrDefault(x => x.IsSelected);
 
             if (selectedContainer != null)
             {
-                this.SelectedIndex = containers.Items.IndexOf((IControl)selectedContainer) + containers.StartingIndex;
+                SelectedIndex = containers.Items.IndexOf((IControl)selectedContainer) + containers.StartingIndex;
             }
             else if (selectedIndex >= containers.StartingIndex &&
                      selectedIndex < containers.StartingIndex + containers.Items.Count)
@@ -289,7 +289,7 @@ namespace Perspex.Controls.Primitives
 
             if (selectable != null)
             {
-                this.TrySetSelectionFromContainerEvent(e.Source, selectable.IsSelected);
+                TrySetSelectionFromContainerEvent(e.Source, selectable.IsSelected);
             }
         }
 
@@ -303,7 +303,7 @@ namespace Perspex.Controls.Primitives
 
             if (index != -1)
             {
-                var container = this.ItemContainerGenerator.ContainerFromIndex(index);
+                var container = ItemContainerGenerator.ContainerFromIndex(index);
                 MarkContainerSelected(container, false);
             }
 
@@ -311,19 +311,19 @@ namespace Perspex.Controls.Primitives
 
             if (index == -1)
             {
-                this.SelectedItem = null;
+                SelectedItem = null;
             }
             else
             {
-                this.SelectedItem = this.Items.Cast<object>().ElementAt((int)e.NewValue);
-                var container = this.ItemContainerGenerator.ContainerFromIndex(index);
+                SelectedItem = Items.Cast<object>().ElementAt((int)e.NewValue);
+                var container = ItemContainerGenerator.ContainerFromIndex(index);
                 MarkContainerSelected(container, true);
 
                 var inputElement = container as IInputElement;
-                if (inputElement != null && this.Presenter != null && this.Presenter.Panel != null)
+                if (inputElement != null && Presenter != null && Presenter.Panel != null)
                 {
                     KeyboardNavigation.SetTabOnceActiveElement(
-                        (InputElement)this.Presenter.Panel,
+                        (InputElement)Presenter.Panel,
                         inputElement);
                 }
             }
@@ -335,7 +335,7 @@ namespace Perspex.Controls.Primitives
         /// <param name="e">The event args.</param>
         private void SelectedItemChanged(PerspexPropertyChangedEventArgs e)
         {
-            this.SelectedIndex = IndexOf(this.Items, e.NewValue);
+            SelectedIndex = IndexOf(Items, e.NewValue);
         }
 
         /// <summary>
@@ -358,20 +358,20 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         private void LostSelection()
         {
-            var items = this.Items?.Cast<object>();
+            var items = Items?.Cast<object>();
 
-            if (items != null && this.AutoSelect)
+            if (items != null && AutoSelect)
             {
-                var index = Math.Min(this.SelectedIndex, items.Count() - 1);
+                var index = Math.Min(SelectedIndex, items.Count() - 1);
 
                 if (index > -1)
                 {
-                    this.SelectedItem = items.ElementAt(index);
+                    SelectedItem = items.ElementAt(index);
                     return;
                 }
             }
 
-            this.SelectedIndex = -1;
+            SelectedIndex = -1;
         }
 
         /// <summary>
@@ -381,21 +381,21 @@ namespace Perspex.Controls.Primitives
         /// <param name="select">Whether the container should be selected or unselected.</param>
         private void TrySetSelectionFromContainerEvent(IInteractive eventSource, bool select)
         {
-            var item = this.GetContainerFromEvent(eventSource);
+            var item = GetContainerFromEvent(eventSource);
 
             if (item != null)
             {
-                var index = this.ItemContainerGenerator.IndexFromContainer(item);
+                var index = ItemContainerGenerator.IndexFromContainer(item);
 
                 if (index != -1)
                 {
                     if (select)
                     {
-                        this.SelectedIndex = index;
+                        SelectedIndex = index;
                     }
                     else
                     {
-                        this.LostSelection();
+                        LostSelection();
                     }
                 }
             }

+ 5 - 5
src/Perspex.Controls/Primitives/TabStrip.cs

@@ -21,19 +21,19 @@ namespace Perspex.Controls.Primitives
 
         public TabStrip()
         {
-            this.GetObservable(SelectedItemProperty).Subscribe(x => this.SelectedTab = x as TabItem);
-            this.GetObservable(SelectedTabProperty).Subscribe(x => this.SelectedItem = x as TabItem);
+            GetObservable(SelectedItemProperty).Subscribe(x => SelectedTab = x as TabItem);
+            GetObservable(SelectedTabProperty).Subscribe(x => SelectedItem = x as TabItem);
         }
 
         public TabItem SelectedTab
         {
-            get { return this.GetValue(SelectedTabProperty); }
-            set { this.SetValue(SelectedTabProperty, value); }
+            get { return GetValue(SelectedTabProperty); }
+            set { SetValue(SelectedTabProperty, value); }
         }
 
         protected override IItemContainerGenerator CreateItemContainerGenerator()
         {
-            TabControl tabControl = this.TemplatedParent as TabControl;
+            TabControl tabControl = TemplatedParent as TabControl;
             IItemContainerGenerator result;
 
             if (tabControl != null)

+ 28 - 28
src/Perspex.Controls/Primitives/TemplatedControl.cs

@@ -97,8 +97,8 @@ namespace Perspex.Controls.Primitives
             _templateLog = Log.ForContext(new[]
             {
                 new PropertyEnricher("Area", "Template"),
-                new PropertyEnricher("SourceContext", this.GetType()),
-                new PropertyEnricher("Id", this.GetHashCode()),
+                new PropertyEnricher("SourceContext", GetType()),
+                new PropertyEnricher("Id", GetHashCode()),
             });
         }
 
@@ -107,8 +107,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public Brush Background
         {
-            get { return this.GetValue(BackgroundProperty); }
-            set { this.SetValue(BackgroundProperty, value); }
+            get { return GetValue(BackgroundProperty); }
+            set { SetValue(BackgroundProperty, value); }
         }
 
         /// <summary>
@@ -116,8 +116,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public Brush BorderBrush
         {
-            get { return this.GetValue(BorderBrushProperty); }
-            set { this.SetValue(BorderBrushProperty, value); }
+            get { return GetValue(BorderBrushProperty); }
+            set { SetValue(BorderBrushProperty, value); }
         }
 
         /// <summary>
@@ -125,8 +125,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public double BorderThickness
         {
-            get { return this.GetValue(BorderThicknessProperty); }
-            set { this.SetValue(BorderThicknessProperty, value); }
+            get { return GetValue(BorderThicknessProperty); }
+            set { SetValue(BorderThicknessProperty, value); }
         }
 
         /// <summary>
@@ -134,8 +134,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public string FontFamily
         {
-            get { return this.GetValue(FontFamilyProperty); }
-            set { this.SetValue(FontFamilyProperty, value); }
+            get { return GetValue(FontFamilyProperty); }
+            set { SetValue(FontFamilyProperty, value); }
         }
 
         /// <summary>
@@ -143,8 +143,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public double FontSize
         {
-            get { return this.GetValue(FontSizeProperty); }
-            set { this.SetValue(FontSizeProperty, value); }
+            get { return GetValue(FontSizeProperty); }
+            set { SetValue(FontSizeProperty, value); }
         }
 
         /// <summary>
@@ -152,8 +152,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public FontStyle FontStyle
         {
-            get { return this.GetValue(FontStyleProperty); }
-            set { this.SetValue(FontStyleProperty, value); }
+            get { return GetValue(FontStyleProperty); }
+            set { SetValue(FontStyleProperty, value); }
         }
 
         /// <summary>
@@ -161,8 +161,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public Brush Foreground
         {
-            get { return this.GetValue(ForegroundProperty); }
-            set { this.SetValue(ForegroundProperty, value); }
+            get { return GetValue(ForegroundProperty); }
+            set { SetValue(ForegroundProperty, value); }
         }
 
         /// <summary>
@@ -170,8 +170,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public Thickness Padding
         {
-            get { return this.GetValue(PaddingProperty); }
-            set { this.SetValue(PaddingProperty, value); }
+            get { return GetValue(PaddingProperty); }
+            set { SetValue(PaddingProperty, value); }
         }
 
         /// <summary>
@@ -179,8 +179,8 @@ namespace Perspex.Controls.Primitives
         /// </summary>
         public ControlTemplate Template
         {
-            get { return this.GetValue(TemplateProperty); }
-            set { this.SetValue(TemplateProperty, value); }
+            get { return GetValue(TemplateProperty); }
+            set { SetValue(TemplateProperty, value); }
         }
 
         /// <inheritdoc/>
@@ -188,26 +188,26 @@ namespace Perspex.Controls.Primitives
         {
             if (!_templateApplied)
             {
-                this.ClearVisualChildren();
+                ClearVisualChildren();
 
-                if (this.Template != null)
+                if (Template != null)
                 {
                     _templateLog.Verbose("Creating control template");
 
-                    var child = this.Template.Build(this);
+                    var child = Template.Build(this);
 
                     // We need to call SetTemplatedParentAndApplyChildTemplates twice - once
                     // before the controls are added to the visual tree so that the logical
                     // tree can be set up before styling is applied.
                     ((ISetLogicalParent)child).SetParent(this);
-                    this.SetTemplatedParentAndApplyChildTemplates(child);
+                    SetTemplatedParentAndApplyChildTemplates(child);
 
                     // And again after the controls are added to the visual tree, and have their
                     // styling and thus Template property set.
-                    this.AddVisualChild((Visual)child);
-                    this.SetTemplatedParentAndApplyChildTemplates(child);
+                    AddVisualChild((Visual)child);
+                    SetTemplatedParentAndApplyChildTemplates(child);
 
-                    this.OnTemplateApplied();
+                    OnTemplateApplied();
                 }
 
                 _templateApplied = true;
@@ -239,7 +239,7 @@ namespace Perspex.Controls.Primitives
             {
                 foreach (IControl child in control.GetVisualChildren())
                 {
-                    this.SetTemplatedParentAndApplyChildTemplates(child);
+                    SetTemplatedParentAndApplyChildTemplates(child);
                 }
             }
         }

+ 9 - 9
src/Perspex.Controls/Primitives/Thumb.cs

@@ -29,20 +29,20 @@ namespace Perspex.Controls.Primitives
 
         public event EventHandler<VectorEventArgs> DragStarted
         {
-            add { this.AddHandler(DragStartedEvent, value); }
-            remove { this.RemoveHandler(DragStartedEvent, value); }
+            add { AddHandler(DragStartedEvent, value); }
+            remove { RemoveHandler(DragStartedEvent, value); }
         }
 
         public event EventHandler<VectorEventArgs> DragDelta
         {
-            add { this.AddHandler(DragDeltaEvent, value); }
-            remove { this.RemoveHandler(DragDeltaEvent, value); }
+            add { AddHandler(DragDeltaEvent, value); }
+            remove { RemoveHandler(DragDeltaEvent, value); }
         }
 
         public event EventHandler<VectorEventArgs> DragCompleted
         {
-            add { this.AddHandler(DragCompletedEvent, value); }
-            remove { this.RemoveHandler(DragCompletedEvent, value); }
+            add { AddHandler(DragCompletedEvent, value); }
+            remove { RemoveHandler(DragCompletedEvent, value); }
         }
 
         protected virtual void OnDragStarted(VectorEventArgs e)
@@ -67,7 +67,7 @@ namespace Perspex.Controls.Primitives
                     Vector = e.GetPosition(this) - _lastPoint.Value,
                 };
 
-                this.RaiseEvent(ev);
+                RaiseEvent(ev);
             }
         }
 
@@ -82,7 +82,7 @@ namespace Perspex.Controls.Primitives
                 Vector = (Vector)_lastPoint,
             };
 
-            this.RaiseEvent(ev);
+            RaiseEvent(ev);
         }
 
         protected override void OnPointerReleased(PointerEventArgs e)
@@ -98,7 +98,7 @@ namespace Perspex.Controls.Primitives
                     Vector = (Vector)e.GetPosition(this),
                 };
 
-                this.RaiseEvent(ev);
+                RaiseEvent(ev);
             }
         }
     }

+ 5 - 5
src/Perspex.Controls/Primitives/ToggleButton.cs

@@ -13,7 +13,7 @@ namespace Perspex.Controls.Primitives
 
         static ToggleButton()
         {
-            Control.PseudoClass(IsCheckedProperty, ":checked");
+            PseudoClass(IsCheckedProperty, ":checked");
         }
 
         public ToggleButton()
@@ -22,18 +22,18 @@ namespace Perspex.Controls.Primitives
 
         public bool IsChecked
         {
-            get { return this.GetValue(IsCheckedProperty); }
-            set { this.SetValue(IsCheckedProperty, value); }
+            get { return GetValue(IsCheckedProperty); }
+            set { SetValue(IsCheckedProperty, value); }
         }
 
         protected override void OnClick(RoutedEventArgs e)
         {
-            this.Toggle();
+            Toggle();
         }
 
         protected virtual void Toggle()
         {
-            this.IsChecked = !this.IsChecked;
+            IsChecked = !IsChecked;
         }
     }
 }

+ 39 - 39
src/Perspex.Controls/Primitives/Track.cs

@@ -10,13 +10,13 @@ namespace Perspex.Controls.Primitives
     public class Track : Control
     {
         public static readonly PerspexProperty<double> MinimumProperty =
-            ScrollBar.MinimumProperty.AddOwner<Track>();
+            RangeBase.MinimumProperty.AddOwner<Track>();
 
         public static readonly PerspexProperty<double> MaximumProperty =
-            ScrollBar.MaximumProperty.AddOwner<Track>();
+            RangeBase.MaximumProperty.AddOwner<Track>();
 
         public static readonly PerspexProperty<double> ValueProperty =
-            ScrollBar.ValueProperty.AddOwner<Track>();
+            RangeBase.ValueProperty.AddOwner<Track>();
 
         public static readonly PerspexProperty<double> ViewportSizeProperty =
             ScrollBar.ViewportSizeProperty.AddOwner<Track>();
@@ -29,76 +29,76 @@ namespace Perspex.Controls.Primitives
 
         static Track()
         {
-            Control.AffectsArrange(MinimumProperty);
-            Control.AffectsArrange(MaximumProperty);
-            Control.AffectsArrange(ValueProperty);
-            Control.AffectsMeasure(OrientationProperty);
+            AffectsArrange(MinimumProperty);
+            AffectsArrange(MaximumProperty);
+            AffectsArrange(ValueProperty);
+            AffectsMeasure(OrientationProperty);
         }
 
         public Track()
         {
-            this.GetObservableWithHistory(ThumbProperty).Subscribe(val =>
+            GetObservableWithHistory(ThumbProperty).Subscribe(val =>
             {
                 if (val.Item1 != null)
                 {
-                    val.Item1.DragDelta -= this.ThumbDragged;
+                    val.Item1.DragDelta -= ThumbDragged;
                 }
 
-                this.ClearVisualChildren();
+                ClearVisualChildren();
 
                 if (val.Item2 != null)
                 {
-                    val.Item2.DragDelta += this.ThumbDragged;
-                    this.AddVisualChild(val.Item2);
+                    val.Item2.DragDelta += ThumbDragged;
+                    AddVisualChild(val.Item2);
                 }
             });
         }
 
         public double Minimum
         {
-            get { return this.GetValue(MinimumProperty); }
-            set { this.SetValue(MinimumProperty, value); }
+            get { return GetValue(MinimumProperty); }
+            set { SetValue(MinimumProperty, value); }
         }
 
         public double Maximum
         {
-            get { return this.GetValue(MaximumProperty); }
-            set { this.SetValue(MaximumProperty, value); }
+            get { return GetValue(MaximumProperty); }
+            set { SetValue(MaximumProperty, value); }
         }
 
         public double Value
         {
-            get { return this.GetValue(ValueProperty); }
-            set { this.SetValue(ValueProperty, value); }
+            get { return GetValue(ValueProperty); }
+            set { SetValue(ValueProperty, value); }
         }
 
         public double ViewportSize
         {
-            get { return this.GetValue(ViewportSizeProperty); }
-            set { this.SetValue(ViewportSizeProperty, value); }
+            get { return GetValue(ViewportSizeProperty); }
+            set { SetValue(ViewportSizeProperty, value); }
         }
 
         public Orientation Orientation
         {
-            get { return this.GetValue(OrientationProperty); }
-            set { this.SetValue(OrientationProperty, value); }
+            get { return GetValue(OrientationProperty); }
+            set { SetValue(OrientationProperty, value); }
         }
 
         public Thumb Thumb
         {
-            get { return this.GetValue(ThumbProperty); }
-            set { this.SetValue(ThumbProperty, value); }
+            get { return GetValue(ThumbProperty); }
+            set { SetValue(ThumbProperty, value); }
         }
 
         protected override Size MeasureOverride(Size availableSize)
         {
-            var thumb = this.Thumb;
+            var thumb = Thumb;
 
             if (thumb != null)
             {
                 thumb.Measure(availableSize);
 
-                if (this.Orientation == Orientation.Horizontal)
+                if (Orientation == Orientation.Horizontal)
                 {
                     return new Size(0, thumb.DesiredSize.Height);
                 }
@@ -113,13 +113,13 @@ namespace Perspex.Controls.Primitives
 
         protected override Size ArrangeOverride(Size finalSize)
         {
-            var thumb = this.Thumb;
+            var thumb = Thumb;
 
             if (thumb != null)
             {
-                var range = this.Maximum - this.Minimum;
-                var thumbFraction = this.ViewportSize / range;
-                var valueFraction = (this.Value - this.Minimum) / range;
+                var range = Maximum - Minimum;
+                var thumbFraction = ViewportSize / range;
+                var valueFraction = (Value - Minimum) / range;
 
                 if (double.IsNaN(valueFraction) || double.IsInfinity(valueFraction))
                 {
@@ -131,7 +131,7 @@ namespace Perspex.Controls.Primitives
                     thumbFraction = 0;
                 }
 
-                if (this.Orientation == Orientation.Horizontal)
+                if (Orientation == Orientation.Horizontal)
                 {
                     var width = Math.Max(finalSize.Width * thumbFraction, thumb.MinWidth);
                     var x = (finalSize.Width - width) * valueFraction;
@@ -150,25 +150,25 @@ namespace Perspex.Controls.Primitives
 
         private void ThumbDragged(object sender, VectorEventArgs e)
         {
-            double range = this.Maximum - this.Minimum;
-            double value = this.Value;
+            double range = Maximum - Minimum;
+            double value = Value;
             double offset;
 
-            if (this.Orientation == Orientation.Horizontal)
+            if (Orientation == Orientation.Horizontal)
             {
-                offset = e.Vector.X / ((this.Bounds.Size.Width - this.Thumb.Bounds.Size.Width) / range);
+                offset = e.Vector.X / ((Bounds.Size.Width - Thumb.Bounds.Size.Width) / range);
             }
             else
             {
-                offset = e.Vector.Y * (range / (this.Bounds.Size.Height - this.Thumb.Bounds.Size.Height));
+                offset = e.Vector.Y * (range / (Bounds.Size.Height - Thumb.Bounds.Size.Height));
             }
 
             if (!double.IsNaN(offset) && !double.IsInfinity(offset))
             {
                 value += offset;
-                value = Math.Max(value, this.Minimum);
-                value = Math.Min(value, this.Maximum);
-                this.Value = value;
+                value = Math.Max(value, Minimum);
+                value = Math.Min(value, Maximum);
+                Value = value;
             }
         }
     }

+ 2 - 2
src/Perspex.Controls/ProgressBar.cs

@@ -28,8 +28,8 @@ namespace Perspex.Controls
         {
             if (_indicator != null)
             {
-                double percent = this.Maximum == this.Minimum ? 1.0 : ((double)e.NewValue - this.Minimum) / (this.Maximum - this.Minimum);
-                _indicator.Width = this.Bounds.Width * percent;
+                double percent = Maximum == Minimum ? 1.0 : ((double)e.NewValue - Minimum) / (Maximum - Minimum);
+                _indicator.Width = Bounds.Width * percent;
             }
         }
     }

+ 3 - 3
src/Perspex.Controls/RadioButton.cs

@@ -12,14 +12,14 @@ namespace Perspex.Controls
     {
         public RadioButton()
         {
-            this.GetObservable(IsCheckedProperty).Subscribe(this.IsCheckedChanged);
+            GetObservable(IsCheckedProperty).Subscribe(IsCheckedChanged);
         }
 
         protected override void Toggle()
         {
-            if (!this.IsChecked)
+            if (!IsChecked)
             {
-                this.IsChecked = true;
+                IsChecked = true;
             }
         }
 

+ 8 - 8
src/Perspex.Controls/RowDefinition.cs

@@ -40,7 +40,7 @@ namespace Perspex.Controls
         /// <param name="type">The height unit of the column.</param>
         public RowDefinition(double value, GridUnitType type)
         {
-            this.Height = new GridLength(value, type);
+            Height = new GridLength(value, type);
         }
 
         /// <summary>
@@ -49,7 +49,7 @@ namespace Perspex.Controls
         /// <param name="height">The height of the column.</param>
         public RowDefinition(GridLength height)
         {
-            this.Height = height;
+            Height = height;
         }
 
         /// <summary>
@@ -66,8 +66,8 @@ namespace Perspex.Controls
         /// </summary>
         public double MaxHeight
         {
-            get { return this.GetValue(MaxHeightProperty); }
-            set { this.SetValue(MaxHeightProperty, value); }
+            get { return GetValue(MaxHeightProperty); }
+            set { SetValue(MaxHeightProperty, value); }
         }
 
         /// <summary>
@@ -75,8 +75,8 @@ namespace Perspex.Controls
         /// </summary>
         public double MinHeight
         {
-            get { return this.GetValue(MinHeightProperty); }
-            set { this.SetValue(MinHeightProperty, value); }
+            get { return GetValue(MinHeightProperty); }
+            set { SetValue(MinHeightProperty, value); }
         }
 
         /// <summary>
@@ -84,8 +84,8 @@ namespace Perspex.Controls
         /// </summary>
         public GridLength Height
         {
-            get { return this.GetValue(HeightProperty); }
-            set { this.SetValue(HeightProperty, value); }
+            get { return GetValue(HeightProperty); }
+            set { SetValue(HeightProperty, value); }
         }
     }
 }

部分文件因文件數量過多而無法顯示