I’m trying to load an external XML file that contains references to images in WPF.
<page>
<foreground path="/data/images/attract/slide1/foreground.png">
<background path="/data/images/attract/slide1/background.png">
</page>
I’m parsing the XML and using the following code to convert each path attribute to an ImageSource.
string backgroundString = (string)backgroundNode.Attributes["path"].Value;
Debug.WriteLine(backgroundString); //returns "/data/images/attract/slide1/background.png"
avm.BackgroundImage = new ImageSourceConverter().ConvertFromString(backgroundString) as ImageSource;
The backgroundString I’m parsing is not null when I write it to the debug output. However, I’m getting the following error.
A first chance exception of type 'System.NullReferenceException' occurred in PresentationCore.dll
System.NullReferenceException: Object reference not set to an instance of an object.
at System.Windows.Media.ImageSourceConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
at System.ComponentModel.TypeConverter.ConvertFromString(String text)
Does anyone see what I’m doing wrong? Any help would be much appreciated.
Thanks,
Bryan
You get that exception if the file is not being found. Firstly you should use a
BitmapImagein code, the converters are for the XAML-parser. Secondly relative paths will be interpreted as pointing to a resource in the application, if this is not the case and you want to point to files relative to the executable instead you should prependpack://siteoforigin:,,,(see Pack URIs in WPF).