Adding two Microsoft Rockstars whom may find the below of interest - or not .. ;) hehe
Pete: what's your thoughts on David's approach below in the url? dangerous or safe? http://davidburela.wordpress.com/2010/02/02/guide-to-creating-expression-blend-3-addins/ David / All, heh funny how we're both attacking blend from different angles and kind of arrive at the same entry point - yet - didn't talk to one another once about it.. Go Readify! :) I think your approach is much cleaner than walking the VisualTree like mine and I'm pretty sure yours is the "supported" way of doing things (i.e. Blend's not likely to introduce breaking changes to its current structure - so I've been told). I'd love to see Blend take on even more of an extensibility than it has today, in that for example: [CategoryVisibility("Font",false)] [CategoryVisibility("Common Properties",false)] [CategoryPanel(typeof(MyPanel),"Panel Name","Description")] public class ConsoleWindow : ContentControl { This would effectively inject your own Panel into the Property Grid. As I think if we had a basic SDK/API to tap into and route actions through, we could keep a tighter control over how UserControl's Turnkeys work etc. Then using API's like: MyCustomControlTag tag = new MyCustomControlTag(); tag.SetType(typeof(MyCustomControl)); tag.Name = "Item01"; tag.MyCustomProperty = new MyValue(); BlendVisualDOMHelper.CreateElement(myParentTag, tag, new TagOrderAttribute(TagOrder.Later), TreeBrowseable.No); This would also allow as to write XAML through a controlled set of approaches (Much like HTML DOM access today). * We new-up a MyCustomControlTag which inherits a BaseTag class (usual UserControl / Control properties etc attached). * We define the "Type" so that it can auto-resolve the xmlns="" for us before injecting it into your XAML at design-time. * We can access our "Custom" properties as they derive from MyCustomControl * We then Inject this into the XAML DOM via BlendVisualDOMHelper through a factory method - CreateElement. * We then feed in the tag and make sure its attached to its ParentNode. * We then feed in an Ordering attribute (I quite like how PropertyOrder works today in Design-time projects for given properties) * We then define whether or not this node is "Visible" on the Objects & Timeline hierarchy as at times we want to make knucklehead tags visible while at the same time for tags with basic functionality we often may opt out - having the choice would be great. Combine these two concepts together and I'd be pretty happy with the way in which I could mutate Expression Blend and do functional things to enable me to keep a tighter reign over framework usage for both developers and designers - essentially force-fit them into following a set path vs. giving them 101 properties they can tweak as well it at times is unnecessary and often causes more pain than its worth. eg: I managed to customize Blend for my "ConsoleWindow" control i'm writing: [cid:[email protected]] That's all she wrote - in that you can't access anything else via Blend. You'd have to actually go in via Code to do it and i figure if you try doing things via that route well all bets are off anyway. From: [email protected] [mailto:[email protected]] On Behalf Of David Burela Sent: Friday, April 02, 2010 6:47 PM To: ozSilverlight Subject: RE: How to hack Expression Blend. Along a similar path, here are my notes on how to create your own addins for expression blend http://davidburela.wordpress.com/2010/02/02/guide-to-creating-expression-blend-3-addins/ -David Burela From: [email protected] [mailto:[email protected]] On Behalf Of Tim Heuer Sent: Friday, 2 April 2010 4:36 AM To: ozSilverlight Subject: RE: How to hack Expression Blend. Awesome. Tim Heuer | +1 (602) 405-4567 | Microsoft Silverlight blog: http://timheuer.com/blog/ | twitter: @timheuer<http://twitter.com/timheuer> From: [email protected] [mailto:[email protected]] On Behalf Of Scott Barnes Sent: Thursday, April 01, 2010 6:58 AM To: ozSilverlight Subject: FYI: How to hack Expression Blend. In case any of you are curious, here's some basic "how to" on hacking Expression Blend's UI, tonight I wrote a quick blog post documenting it (ie you can really goof around with the UI inside the tool) How to hack Expression Blend - http://bit.ly/9e4GQd Would love to know if any of you are tinkering around in this space as well? any insights/tips?
<<inline: image001.jpg>>
_______________________________________________ ozsilverlight mailing list [email protected] http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight
