我使用以下代码成功地将InkCanvas的背景从图像后面的代码中更改了:
ImageBrush imageBrush = new ImageBrush();
imageBrush.ImageSource = new BitmapImage(new Uri("temp.jpg", UriKind.Relative));
inkCanvas1.Background = imageBrush;
现在我只想调整背景图像的分辨率。 例如,如果我的InkCanvas大小为500 x 500,我想在背景的中心以300 x 300的分辨率显示InkCanvas中的背景图像。
这可能吗? 在这方面的任何帮助将不胜感激。
答案 0 :(得分:0)
这当然有很多方法,例如,您可以设置RelativeTransform属性:
<InkCanvas.Background>
<ImageBrush>
<ImageBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterY="0.5" CenterX="0.5" ScaleX="2" ScaleY="2"/>
</TransformGroup>
</ImageBrush.RelativeTransform>
</ImageBrush>
</InkCanvas.Background>
这样,您的背景图片是前一张图片的两倍。如果要更精确地控制背景,可以使用VisualBrush,如下所示:
<Grid.Background>
<VisualBrush>
<VisualBrush.Visual>
<Image Width="200" Height="200"></Image>
</VisualBrush.Visual>
</VisualBrush>
</Grid.Background>