Click here to subscribe to my new RSS feed.
Thanks!
deadly sharp lines, waves of sine, intersecting shapes with tweens and keysplines
Click here to subscribe to my new RSS feed.
Thanks!

Contest entrants are limited to 10kilobytes of source code and resource files, so like many others, I was constantly budgeting features, making lots of trade off decisions. It was a very enjoyable exercise, because I ended up cutting all my grandiose ideas like explanatory tooltips, sprite animations for the plants, keyboard input, background music, and lots of nice-to-have game mechanics like power ups and penalties, all of which would’ve been way over budget.
My thanks go out to Adam Kinney and crew for putting the contest together and making that weekend much longer and more enjoyable.
Here is a simple example, which shows a Calendar control that changes opacity when Slider.Value changes.
<e:Calendar ab:AttachedBinding.Binding= "TargetProperty=Opacity, ElementName=OpacitySlider, Path=Value"/> <Slider x:Name="OpacitySlider" Minimum="0" Maximum="1" SmallChange="0.1" LargeChange="0.1" Value="1.0"/>
Enjoy!
Disclaimer : Thanks go to Neil Mosafi, his ElementNameBinder was first on the scene. I reasoned an Attached Behavior with a custom TypeConverter would be easier to use, and I was able to make some optimizations along the way.

“I wanted to see how I could use video as an instrument,” he says, “and try to really make the stage feel like it’s organic — like it’s part of the overall set.”
They’ve done precisely that, as ~40% of the visuals are rendered on the fly utilizing rhythm, vocal and optical input from the band. Check out this article in wired for tech specs and video.
Makes me really sad I missed it their Seattle show.
To resolve some of this, IdentityMine has set up some good quality videos on a Vimeo channel, which includes our official Reel. Below is the Surface Promo. Special thanks to Kurt for setting this up!
A well executed, no-nonsense addin, reusing Kaxaml’s intellisense code and hooking Blends ICodeEditor. Well done, Stefan.
My only concern is what happens when a second highly useful addin becomes available. I hope Blend 3 has AddIn management on the table, or perhaps an AddIn Manager addin is in order…
Unfortunately, Silverlight doesn’t yet have the parser extensibility required to make these APIs markup friendly. For now, at least, the 3D API may be compatible with WPF in code, but there’s not a good markup story.
This isn’t exactly true. Silverlight supports custom TypeConverters, which would allow the xaml parser to convert custom type markup to objects. This is just a case of Kit3D hasn’t yet ported those over, for things like Vector3D using a Vector3DConverter.
The xaml story for silverlight is pretty strong, over all. In addition to TypeConverters, you can use XmlnsDefinition in silverlight, so that you can map several namespaces to a single schema Uri providing a more natural usage of namespaces in your xaml. The only thing that silverlight is really lacking is MarkupExtensions, which incidentally I think will be added in a future release, based on the fact that the MS.Internal.IMarkupExtension interface exists in System.Windows.dll.
[Updated 8.5.2008]
Hey Robby, Turns out I was wrong about XmlnsDefinitions. Yes the attributes exist in silverlight 2, but the XamlParser does not respect them. As Mark has informed me, this is a feature that will be added after Silverlight 2 RTM. On the plus side, TypeConverters definitely work.
From the KB Article:
This update improves stability, media streaming, and the auto-update component. This update also improves support for Mozilla Firefox 3.
I’m still hopeful that Silverlight 2 RTM will have a Trigger construct of some kind. But I’m convinced ElementName bindings, Data Template Selectors, and Markup Extensions won’t come until 2.5 or 3.
Good post, Pete!