WPF - InkCanvas - 背景图像
WPF - InkCanvas - Background Image
我使用以下代码成功地从带有图像的代码后面更改了我的 InkCanvas 的背景:
ImageBrush imageBrush = new ImageBrush();
imageBrush.ImageSource = new BitmapImage(new Uri("temp.jpg", UriKind.Relative));
inkCanvas1.Background = imageBrush;
现在我只想调整背景图片的分辨率。
例如,如果我的 InkCanvas 大小是 500 x 500,我想在我的 InkCanvas 中以 300 x 300 的分辨率在中心显示背景图像。
这可能吗?
在这方面的任何帮助将不胜感激..
这个当然还有很多方法,比如可以设置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>
我使用以下代码成功地从带有图像的代码后面更改了我的 InkCanvas 的背景:
ImageBrush imageBrush = new ImageBrush();
imageBrush.ImageSource = new BitmapImage(new Uri("temp.jpg", UriKind.Relative));
inkCanvas1.Background = imageBrush;
现在我只想调整背景图片的分辨率。 例如,如果我的 InkCanvas 大小是 500 x 500,我想在我的 InkCanvas 中以 300 x 300 的分辨率在中心显示背景图像。
这可能吗? 在这方面的任何帮助将不胜感激..
这个当然还有很多方法,比如可以设置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>