Archive for the ‘XAML’ Category

A couple of months ago I posted a preview video of the “Fireworks Brush Manager”. Since that post I’ve had pretty much no free time to work on the project. I’ve update the layout a bit, added new icons, etc., but haven’t really focused on finished up the functionality. Last week I spent a little time before bed one night reviewing how I expected to interact with the panel and realized that I was trying to cram too much into a single panel. I realized I really had two panels: a ResourceDictionary Panel and a new Brush Editor panel. Since I have the ResourceDictionary part of the thing in a partially working state, I decided to go ahead and post a preview release to start getting some feedback and bug testing going.

I only have the “Open” function working, which lets you browse for a ResourceDictionary. I’m planning on adding Save capability and a Sync feature, which will synchronize objects on the stage with brushes assigned to them should the resource change. Watch for that over the next 3 months 😉

Known Issues: I’ve found that I have to open the same ResourceDictionary twice sometimes in order for the file to be recognized. So if your brushes don’t appear at first, try again. If your brushes never appear, or if you run into bugs, please send me a note along with your ResourceDictionary and I’ll add it to my list of test RDs.

(7: The number of times I typed “Panel” in this post, 8 after that last reference)

I’ve posted a couple of videos that highlight new features included in NetAdvantage for WPF 2007.2 that we released about a month ago. The first video demonstrates how you can use the samples included in the xamFeatureBrowser to quickly create a xamRibbon.

The second video demonstrates a feature that I’m really excited about: ResourceWashing. Using ResourceWashing, you can “wash” the brushes defined in ResourceDictionaries with a new color. Since the brushes can be washed at runtime, you can create an application that can be infinitely customized by the end user — really exciting! This is the same washing technology used by AppStylist for Windows Forms in the “New from Template” feature. The xamRibbon is the first control whose brushes have been grouped into “WashGroups” to really take advantage of this technology. Moving forward, we’ll be applying the same techniques to the other controls. I can’t wait to see what the WPF community ends up creating with this technology!

A couple of years ago Robby introduced me to the term “McGuffin”, via this post. In his explanation, he admits that he is probably stretching the original intention of the word, and since I’m now interpreting his interpretation, it may be safe to say that my usage of the term is now far from its original meaning. You be the judge.

If you’re reading this blog, you’re probably also reading Josh Smith‘s blog, and you’re probably aware that I’m working on a new skin for Podder, his WPF podcast reader. Throughout the design process, I’ve had lots of different ideas running through my head – I really have a clean slate to play with here, and any of you who have designed an app or web site from scratch know how challenging that initial blank page can be. There are so many possibilities, so many directions you can take the layout; ultimately, you just have to go with something then tweak until you go crazy. It’s definitely a different process than designing something that works (visually) with an existing product line. There, you have an established aesthetic that drives the design.

So, as I go into the polish stage and really have a feel for the direction the layout is going, I’m looking at ways to make the application feel responsive, alive. One way I’m doing this is through my “McGuffin”-Enabling Image Converter. This converter is bound to an Image’s Source property and then returns an “averaged” Color – I take a random sampling of pixels then average their color values. The resulting color represents the generalized color of the image. In Podder, I’m using this converter to set the background image of the application to a color that works well with the image of the selected podcast, so as the selection changes, the color of the application changes to match, and the plot advances (my McGuffin).

I’ve added this converter to the Infragistic ToyBox assembly that I started a while back (and haven’t actively added to in a while). Download the sample project to see the converter in action. (Note: it currently only works with local images, not images whose source points to a web address).

I’m excited to be posting an early build of Pistachio for the WPF Community to get their hands on and try out. Pistachio is a utility I created with fellow Infragistics VDGer Tim Hussey. It’s pretty simple really, you just open a .csproj file with Pistachio and it identifies all resources defined within the project, then shows you which of those resources are used and where they’re used. It’s now a part of our project cycle – we use it to identify all stray resources and clean up our projects. It’s also great for getting a big picture understanding of your current resource structure.

We have plenty of ideas for making the overall experience better, but I’d love to get some feedback anyway. I’m currently using a xamCarouselListBox at the top of the window to display resource dictionaries. In mockups this approaches looks clean and nice, but in practice it doesn’t really cut it. Most of our resource paths are actually longer than the template for each item provides, so we start to see text colliding. I’m planning on moving the resource list to the left side of the page and possibly presenting it in a tree or vertical tab format. I want to reinforce the relationship between the active resource page and the grid of resources. Later posts will also incorporate usage visualizations courtesy of our new xamChart.

So — download Pistachio and take it for a spin! Let me know if you love it or hate it (or if it doesn’t work for you).

What is “Tangerine” you ask? Tangerine is a WPF “Exemplar” produced by the Infragistics User Experience Group (UxG) and Visual Design Group (VDG). An Exemplar is the term we use for a reference application. (Click the exemplar link to learn a little more about the terminology.) Instead of re-inventing the wheel here, I’m just going to paste in the description from our community site:Tangerine v1.0 is a WPF-based asset browser application. It has a pluggable architecture so that you can provide any number of different back-end asset providers while reusing the same snazzy UI that’s based on Infragistics NetAdvantage for WPF toolset. In our first release, we have supplied an Amazon Web Services’ E-Commerce Service provider so that you can use the application to browse and search the Amazon.com catalogue. You can use the links below to both run the application (via ClickOnce deployment) now or download the solution and papers.

This application covers a huge range of techniques and technologies and is great way to increase your knowledge of WPF. We’ve used the xamCarouselListBox throughout the application in several different ways — hopefully this will inspire some additional creative uses of the control.