I was doing some code that checks the number of network round trips to the database within a single transaction. I was coding it using WPF in C#. What I wanted to do was set the image in the Status Bar to a green image if the transaction took 1 trip, a yellow image if it took 2 trips and a red image if it was greater than 2 trips to the database.
Initially I thought I could just set ImageName.Source to the image file. However, when you create an image in a .XAML file and Image is of type System.Windows.Media and you can not simply pass a string to it. Instead I needed to reference all my images from within the Windows.Resources tags of the .XAML file. Not so complex, see the code below:
[sourcecode language="xml" padlinenumbers="true"] < Window x:Class="XXX" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > < Window.Resources > < ResourceDictionary > < ImageSource x:Key="ImageGreen">Images/greenLight.png / > < ImageSource x:Key="ImageYellow">Images/yellowLight.png / > < ImageSource x:Key="ImageRed">Images/redLight.png / > < /ResourceDictionary > < /Window.Resources > < Grid> < Image Name="ImageStatus" Source="/Images/greenLight.png" / > < /Grid > < /Window > [/sourcecode]
Notice above that I have 3 ImageSource references (ImageGreen, ImageYellow and ImageRed) and an Image named ImageStatus. I need this reference so that I can access them from my code-behind. In the code-behind, I simply add this line of C# code:
[sourcecode language="csharp"] ImageStatus.Source = (ImageSource)FindResource("ImageRed"); [/sourcecode]
This code makes the reference to the source of my Image, ImageStatus, searches for the ImageSource, ImageRed and set the 2 equal. You can place whatever logic around the setting of the ImageStatus source based on your requirements.