I posted this as a comment on the blog (wrong place, I know) and am going to try to implement your suggestion (have to make sense of it first).
I'll start this thread so that I have a place to discuss this, and because I'd like to suggest that you consider adding such support out-of-the-box. Again, I know I can rewrite it, but this seems like a core feature to me, not something I would have to figure out myself.
If you want your game to look like Microsoft Windows then you're in luck - the existing implementation supports that well. But creating something more like what you see in fantasy RPG games - an image-heavy GUI with backgrounds and ornamented corners, etc. - that's going to take significant work right from the start. It would be a huge bonus to have support for that by default.
I'm hoping to get to a point where I can quickly construct elements in more or less the following way:
Window win = new Window;
win.Shadow.Depth = 20; (optional procedural shadow would definitely simplify window definition)
win.Shadow.Blur = 10;
win.Shadow.Offset.Set(0,0);
...
win.Border.Corners.Add("windowBorderTopLeft", "windowBorderTopRight", "windowBorderBottomRight", "windowBorderBottomLeft");
win.Border.Top.BackgroundImage.Path = "windowBorderTop";
win.Border.Top.BackgroundImage.FillMode = FillMode.RepeatX;
...
win.TitleBar.BackgroundImage.Path = "windowTitleBackground";
win.TitleBar.BackgroundImage.AlignX = AlignX.Left;
win.TitleBar.BackgroundImage.FillMode = FillMode.RepeatX;
win.TitleBar.Content.Add(new Image("titleBarIcon", AlignX.Left);
win.TitleBar.Content.Add(new TextBlock("This is a window", AlignX.Left);
...
win.BackgroundImage.Path = "windowBackground";
win.BackgroundImage.AlignX = AlignX.Center;
win.BackgroundImage.AlignY = AlignY.Middle;
win.BackgroundImage.FillMode = FillMode.RepeatXY;
...
win.Content.Add(new Button(...));
...
Even if the above was in XML, the general approach would be much easier to grasp and ramp up with (at least for me). I don't know if it would be possible to do this without breaking what folks are already doing.
Just a thought. I'll keep poking at it. I really want this to be the system I choose - I like everything else I'm seeing, especially the regular blog posts and developer activity in the forums. Back to the documentation...