【问题标题】:change canvas image on button click in wpf在wpf中单击按钮时更改画布图像
【发布时间】:2016-01-08 00:53:17
【问题描述】:

单击按钮时,我想将画布图像(背景图像)更改为文件夹中的另一个图像(图像是文件夹名称)。这是我尝试过的:

    private void Button_Click_2(object sender, RoutedEventArgs e)
    {
        drawingCanvas.Children.Clear();
        ImageBrush imageBrush = new ImageBrush();
        imageBrush.ImageSource = new BitmapImage((new Uri(@"../Images/canvas.png", UriKind.Relative)));
        drawingCanvas.Background = imageBrush;

}

首先我要清除画布的内容,删除之前的图像。现在想将背景设置为另一个图像。错误:URI 未处理异常。任何解决方案将不胜感激。谢谢。

【问题讨论】:

  • 好像找不到图片。你确定图片路径可以访问吗?
  • 您的画布是否包含图像,还是使用图像绘制背景?您正在使用 .Children.Clear,这表明它包含一个 Image 对象,但随后尝试使用 ImageBrush 绘制背景,这是不同的。听起来您真正想要的是在 Canvas 中获取 Image 并更改它的 Source 属性
  • 图片路径可访问。图像基本上是空白的,用户可以在其上绘制。首先,用户可以选择在空白画布上绘图,或者他可以上传地图并在其上绘图。当他删除地图时,他应该能够在空的画布上再次绘制,这就是我想将画布背景更改为空白的原因。
  • 所以点击按钮,之前的图像被删除,我想要一个新的图像设置为画布背景。
  • Images 是 Visual Studio 中的一个文件夹

标签: wpf image canvas


【解决方案1】:

图片资源由Resource File Pack URI加载:

imageBrush.ImageSource = new BitmapImage(
    new Uri("pack://application:,,,/Images/canvas.png"));

另外,图片文件的Build Action必须设置为Resource,如this answer所示。

【讨论】:

    猜你喜欢
    • 2013-04-25
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    相关资源
    最近更新 更多