WPF-InkCanvas-背景图像

时间:2018-09-25 01:40:44

标签: c# .net wpf desktop-application inkcanvas

我使用以下代码成功地将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中的背景图像。

这可能吗? 在这方面的任何帮助将不胜感激。

1 个答案:

答案 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>