C# 资源映像可以在Xaml中引用,但不能在代码中引用,为什么?

C# 资源映像可以在Xaml中引用,但不能在代码中引用,为什么?,c#,wpf,image,xaml,resources,C#,Wpf,Image,Xaml,Resources,请原谅这个新手问题,我只是在学习WPF。 我有一个图像,我已将构建操作设置为“资源” 如果我在XAML中将它设置为窗口图标,它就可以正常工作。 像这样: Window ... Icon="Images/MyIco.png" 但是,如果我尝试将其设置为图像的源,则会出现一个异常,即找不到资源: Uri uri = new Uri("pack://application:,,,/Images/MyIco.png"); // This does not work img.Source = Bitma

请原谅这个新手问题,我只是在学习WPF。 我有一个图像,我已将构建操作设置为“资源”

如果我在XAML中将它设置为窗口图标,它就可以正常工作。 像这样:

Window ... Icon="Images/MyIco.png"
但是,如果我尝试将其设置为图像的源,则会出现一个异常,即找不到资源:

Uri uri = new Uri("pack://application:,,,/Images/MyIco.png"); // This does not work
img.Source = BitmapFrame.Create(uri); 

上面的代码中我做错了什么?

确保您的路径正确,如果正确,您可以尝试使用此代码加载图像

    //tmp is your path
    BitmapImage img = new BitmapImage(new Uri(tmp, UriKind.Relative));
    img.CreateOptions = BitmapCreateOptions.None;
    img.ImageOpened += img_ImageOpened;

    void img_ImageOpened(object sender, RoutedEventArgs e)
    {
        WriteableBitmap wbm = new WriteableBitmap((BitmapImage)sender);                
    }

例如:我的路径是“/Assets/size/background/bg_02.png”

正如您所看到的,该路径是正确的,因为它适用于Icon=“Images/MyIco.png”我试图了解Uri的路径字符串是否有问题:pack://application:,,,/Images/MyIco.png“