Using blend

For various projects I’ve been using Microsoft Expression Blend to do the interface design while Paul and/or Van Exel were coding. Blend is part of a bigger set of tools, called Microsoft Expression Studio. As the experienced Visual Studio people can see, it is using the same .sln files as Visual Studio. However, there’s a major bug in Blend involving multiple projects within a solution. It automatically takes the first project in the solution file as  the startup project, regardless whether or not you set that as startup project in VS.

PlectraeMenu in Blend

‘Onderwater scherm’ of the PlectraeMenu

Once you managed to get the solution file to work with Blend (manually moving the correct project to the top of the list in the .sln file), it is major fun. It has a split screen which resembles  the reveal codes screen of word perfect, back in the day. The drawing tools are quite good, not as good as inkscape, but since you can edit the XML as well you can copy the exact coordinates over from the SVG. It would be nicer if you could import the SVG directly though. To be honest, Blend is not designed to be a real graphic design tool, MS Ex. Design is. I guess the proposed workflow is that you do your design in Design and then export that to Blend to integrate your design with C# code. I do my design in Inkscape and then import that to Blend so it’s not that much different, just a bit more hassle to get the design in.

Blend is the interaction tool of the Expression set and it shows. You can create animations (storyboards) and bind them to events (left top corner in the screenshot) on any object. Furthermore you can use databinding so the coders just manipulate the content inside the databinding without editing the XAML. On the other hand you can change anything in the XAML as long as the databinding stays intact. This way you can work parallel with the coders, their changes showup in you project and yours in their without (too much) interference.

This approach present some new problems though. Since you can do a lot in XAML regarding events and actions, but you can do everything from code aswell, you really need to think where the line of seperation is. You are forced to sit next to the coders and discuss what is done in code and what in XAML, where to use templates and databinding and what XAMLs to create. Since we are all new to WPF we still need to learn what can be done in XAML and what is better done in code. Looking back to the last three projects the general trend is that more and more is moved to XAML, but that is probably due to our previous non-existant knowledge of the possibilities of XAML.


user interaction, work