如何通过单击按钮更新/替换WPF中的图像

时间:2011-05-01 01:56:44

标签: c# wpf

所以我有一张图片,当用户点击按钮时,它会将其更改为新项目。但是,每当用户单击其中一个按钮时,该窗口将变为空白。我怎样才能让它发挥作用?谢谢。

private void Next_Click(object sender, RoutedEventArgs e)
{
    if (imageNumber > 6)
    {
        imageNumber = 1;
    }
    imageNumber++;
    string sUri = string.Format("@/Resources/{0}", imageSource[imageNumber]);
    Uri src = new Uri(sUri, UriKind.Relative);
    var bmp = new BitmapImage(src);
    img.Source = bmp;            
}

XAML

<Image x:Name="img">
    <Image.Source>
        <BitmapImage UriSource="Resources/BlackJackTut-1.jpg" />
    </Image.Source>
</Image>

2 个答案:

答案 0 :(得分:2)

在WPF应用程序中,您也可以使用"pack://application:,,,/resources/imagename.png"执行相同操作 这种方式称为Pack URI。这是静态的,但使用这些代码,您可以使用相同的甚至使用资源;)

将图片放入参考资料。

private BitmapImage ConvertBitmapToBitmapImage(System.Drawing.Bitmap bitmap)
{
    MemoryStream memoryStream = new MemoryStream();
    bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png);
    BitmapImage bitmapImage = new BitmapImage();
    bitmapImage.BeginInit();
    bitmapImage.StreamSource = new MemoryStream(memoryStream.ToArray());
    bitmapImage.EndInit();
    return bitmapImage;
}

然后使用它:

private void btn_Click(object sender, RoutedEventArgs e)
{
    this.Img.Source = ConvertBitmapToBitmapImage(Properties.Resources.iamge1);
}

答案 1 :(得分:0)

只需在mainWindow外面制作一张图片。

然后:

myImageOnScreen.Source = myImageOffScreen.Source;