Создайте CombinedGeometry, вырезав меньший квадрат из большего, а затем используйте его с контуром.Размер зависит от вашего приложения. Для большинства случаев Viewbox, вероятно, будет достаточно хорош:
<Grid>
<TextBlock Text="Hello World!" FontSize="200" Foreground="Red" TextWrapping="Wrap" TextAlignment="Center"/>
<Viewbox Stretch="UniformToFill">
<Path Fill="#C0000000">
<Path.Data>
<CombinedGeometry GeometryCombineMode="Exclude">
<CombinedGeometry.Geometry1>
<RectangleGeometry Rect="0,0,4,4" />
</CombinedGeometry.Geometry1>
<CombinedGeometry.Geometry2>
<RectangleGeometry x:Name="cutRect" Rect="1,1,2,2" />
</CombinedGeometry.Geometry2>
</CombinedGeometry>
</Path.Data>
</Path>
</Viewbox>
</Grid>
Затем измените размервнутренней геометрии вы можете либо связать его Rect со свойством модели представления, либо изменить его непосредственно в коде:
cutRect.Rect = new Rect(1, 1, 1, 1);