I noticed that you have the Copy to Output Directory
option set to "Do Not Copy."
Try changing it to either "Copy Always" or "Copy if newer" and see if that helps.
Update
I just wrote a quick sample app to try to figure this out. It seems to work properly, so I'll post my code here hoping that it'll help.
<Grid>
<Grid.Background>
<ImageBrush x:Name="brush" AlignmentX="Left" ImageSource="images/have_the_dumb.jpg" Stretch="Fill" />
</Grid.Background>
</Grid>
In the code-behind, I added some tracing code to see where the ImageBrush
thinks its ImageSource
is.
public ImageDisplay()
{
Trace.Listeners.Add(new TextWriterTraceListener(@"c:\happyface.trace.log"));
Trace.AutoFlush = true;
InitializeComponent();
Trace.WriteLine(String.Format("Image thinks it's in {0}", brush.ImageSource.ToString()));
}
When running that in Debug mode, you should see a line written to the Output window (as well as to the *.trace.log file) with the URI where it thinks the image is located.
I ran it with the image in an images folder off the root of my solution. I tried it with the image set as "Content" (with "Copy if newer") as well as "Resource" (with do not copy), and it ran successfully both times.
Hope this points you in the right direction.