It works fine for me.
So: the first thing to do is to check that your code is being executed.
Put a breakpoint on the line you show above, and make sure it is hit.
If it is, then create a string which holds the full info:
string path = imagepath + x.Attribute(XName.Get("Image")).Value;
Look at "path" in the debugger, and make sure that the file exists and is fully reachable from that PC.
If that's all ok, look at the BackgroundImage property and make sure it is set to an image.
Then double check that btn1 is actually on the display!
One of those should give you an idea what the problem is: if it doesn't, then tell us what you get at each stage above, and we will see what we can do.