The simple explanation to this is that you are putting a rectangular image on a square face.
A little more detailed explanation is that your MeshGeometry3D.TextureCoordinates
defines two triangles that cover your rectangular image and squeezes them into a square area defined by the values in MeshGeometry3D.Positions
.
Now there are many solutions depending on what you want to achieve. Let's start with a simple one:
Change your brush to have a square image. This will conserve the image's aspect ratio since by default, Image.Stretch
is Uniform
. Note that I have also changed the background to Transparent
.
<MaterialGroup x:Key="mat1" >
<DiffuseMaterial >
<DiffuseMaterial.Brush >
<VisualBrush >
<VisualBrush.Visual >
<Grid Width="800" Height="800" Background="Transparent">
<Image Source="screenshot-1.Png"></Image>
</Grid>
</VisualBrush.Visual >
</VisualBrush >
</DiffuseMaterial.Brush >
</DiffuseMaterial >
</MaterialGroup>