Center using MatrixTransform Translate

489 Views Asked by At

All I want to do is to center myObject in the middle of my UserControl using a method, I'm using MatrixTransform for scaling and rotating.

.xaml

<Grid>
    <MyObject x:Name="myObject">
        <MyObject.RenderTransform>
            <MatrixTransform />
        </MyObject.RenderTransform>
    </MyObject>
</Grid>

.cs

public void CenterMyObject()
{
    Point layoutCenter = myObject.PointFromScreen(new Point(ActualWidth / 2, ActualHeight / 2));
    var transform = myObject.RenderTransform as MatrixTransform;
    var matrix = transform.Matrix;
    matrix.TranslatePrepend(layoutCenter.X, layoutCenter.Y);
    transform.Matrix = matrix;
}
0

There are 0 best solutions below