Here is what I have been using. Just draw your path wherever you want and afterwards translate it to the desired starting point. You can use Bindings to center it within the grid. This allows to place your geometry wherever you want within your grid.
<Grid>
<Path Stroke="Black"
StrokeThickness="1">
<Path.Data>
<PathGeometry>
<!-- Your path geomrtry -->
</PathGeometry>
</Path.Data>
<Path.RenderTransform>
<TranslateTransform Y="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Grid}, Path=ActualHeight, Converter={StaticResource widthAndHeightDivider}}"
X="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Grid}, Path=ActualWidth, Converter={StaticResource widthAndHeightDivider}}"/>
</Path.RenderTransform>
</path>
</Grid>
And having the following converter, which divides the ActualWidth of the grid by to to get it centered:
public class WidthAndHeightDivider : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
double d = (double)value / 2.0;
return d;
}
}
I hope this helps!