public void TitleCentersProperlyAfterUpdate() { Chart chart = new Chart(); LinearAxis horizontalAxis = new LinearAxis { Orientation = AxisOrientation.X, Title = "Filler Text" }; chart.Axes.Add(horizontalAxis); LinearAxis verticalAxis = new LinearAxis { Orientation = AxisOrientation.Y, Title = "Sample Title" }; chart.Axes.Add(verticalAxis); Title horizontalTitle = null; Title verticalTitle = null; TestAsync( chart, () => { horizontalTitle = horizontalAxis.GetVisualDescendents().OfType <Title>().First(); verticalTitle = verticalAxis.GetVisualDescendents().OfType <Title>().First(); }, () => { Point xLeftTop = horizontalTitle.TransformToVisual(horizontalAxis).Transform(new Point()); Assert.AreEqual(Math.Round(xLeftTop.X), Math.Round((horizontalAxis.ActualWidth - horizontalTitle.ActualWidth) / 2)); Point yLeftTop = verticalTitle.TransformToVisual(verticalAxis).Transform(new Point()); Assert.AreEqual(Math.Round(yLeftTop.Y), Math.Round((verticalAxis.ActualHeight + verticalTitle.ActualWidth) / 2)); }, () => { horizontalAxis.Title = "Much longer filler text"; verticalAxis.Title = new Rectangle { Width = 100, Height = 10 }; }, () => { Point xLeftTop = horizontalTitle.TransformToVisual(horizontalAxis).Transform(new Point()); Assert.AreEqual(Math.Round(xLeftTop.X), Math.Round((horizontalAxis.ActualWidth - horizontalTitle.ActualWidth) / 2)); Point yLeftTop = verticalTitle.TransformToVisual(verticalAxis).Transform(new Point()); Assert.AreEqual(Math.Round(yLeftTop.Y), Math.Round((verticalAxis.ActualHeight + verticalTitle.ActualWidth) / 2)); }); }