为什么这行代码不起作用?

时间:2013-05-01 17:52:02

标签: c# .net wpf

我想从磁盘显示图像!

private void Button_Click_3(object sender, RoutedEventArgs e)
{
    myImage.Source = new BitmapImage(
        new Uri("images\\Countries\\dz.png",UriKind.Relative));
}

我确定文件名是正确的但是 当我按下按钮时,图像没有出现,我还确保图像位于所有其他控件的前面,并且myImage是其名称。

4 个答案:

答案 0 :(得分:1)

试试这个:

private void Button_Click_3(object sender, RoutedEventArgs e)
{
    try
    {
        myImage.Source = new BitmapImage(
        new Uri(@"images\Countries\dz.png",UriKind.Relative));
    }

    catch(Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
  1. 使用@使其成为文字字符串(您无需提供 转义序列然后)

  2. 如果上述方法也不起作用,那么它会显示异常(如果有的话) 发生。

答案 1 :(得分:0)

尝试调试它。 在该行(F9)上设置一个断点并点击F5开始调试。执行该行后检查myImage.Source的值(F10到步骤)。 您还可以使用立即窗口在调试暂停时测试其他语句并查看结果。

还要确保images文件夹与可执行文件位于同一文件夹中(根据您的构建,在Debug或Release文件夹中)

答案 2 :(得分:0)

BitmapImage bitImg = new BitmapImage();
bitImg.BeginInit();
bitImg.UriSource = new Uri("images\\Countries\\dz.png", UriKind.Relative);
bitImg.EndInit();

myImage.Source = bitImg;

答案 3 :(得分:0)

可能有助于您的一些事情:

而不是:

myImage.Source = new BitmapImage(new Uri("images\\Countries\\dz.png",UriKind.Relative));

试试这个:

BitmapImage ImageName = new BitmapImage;
ImageName.BeginInit();
ImageName.UriSource = new Uri(@"images\Countries\dz.png",UriKind.Relative);
ImageName.EndInit();
myImage.Source = ImageName;

有关详细信息,请参阅以下链接(页面底部的示例部分)。

http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapimage.aspx

如果上述方法不起作用,我们需要您发布更多代码:)。此外,如果您准确指定要在此处实现的目标,将会有所帮助。