Jaime Rodriguez On Windows Store apps, Windows Phone, HTML and XAML
Today, Karsten mentioned Dr. WPF.... I am embarrassed to admit I did not know about this phenomenon.. but I just spend the last two hours looking at his/her blog ... not only is it full of WPF goodies but also funny ...
Dr. WPF, thanks for being so generous in sharing via posts and forums .... I really enjoyed a the posts I read so far.. I created a tag just for you on my blog....
hats off..
Lately, I have been seeing System.Runtime.InteropServices.COMException quite often when I launch Visual Studio 2008 to work on Silverlight projects..
Here is what I know causes the error..
If you are seeing the error, my reccomendation is to at least try C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE>devenv /REsetSkipPkgs That seems to help a lot of things..
Want to know which one gets me?? I forget to elevate, and I need Web App projects (instead of Open As website) because I need 'post-build steps' ...
Cheers,
In a recent family trip, my brother-in-law hooked me up w/ a magazine for the long plane ride; it was Visual Studio Magazine with a "WPF Goes To Work" article in the cover. The article begins with a "Windows Presentation Foundation has been greatly underserved by Microsoft’s emphasis on glitz and glamour; learn how to take advantage of WPF in your everyday Windows business apps" ... Picture me sitting on a 4 hour plane ride, with that opener, I went through all the emotions ( in order):
Eventually, I decided all of these answers are partially right... so I scribbled my opinions on these topics
On all of the above, I need to disclaim a couple things:
Creating a Silverlight 1.0 video player using Expression encoder is incredibly easy ( 3 clicks and done).. Debugging it or tweaking it was not as easy... Until now..
Jim Thill posted the debug ( read:uncrunched, unoptimized ) version of the media encoder templates.. so now you can read and tweak the code.. It also comes with a document on how to document the player skins..
The template & docs are here. Enjoy!
Lots of tools released recently.. here are my lessons learned after not reading the manual :(
A friend asked me if I would recommend installing 3.5 Framework on his box and Blend 2 (so he can build prototypes using Blend 2 and then cut & paste to his Blend 1.0 projects)? I have not tried running it side-by-side and I explained to him that there is implications of installing 3.5 on his box, this effectively upgrades your 3.0 framework so if you need to stick with a 3.0 framework for testing or debugging of existing apps -which was his case- I recommend using Blend2 on a VPC or a secondary box ... he is now happy getting the best of both worlds that way.
That is it ... my machines are up-to-date on tools for now ... I hope this helps u decide what to download ..
Karl (of mole fame) emails me about "The new iteration" article that Karsten and I wrote a while ago... The paper attempts to do a lot in a few pages:
Please do send us your feedback .. there were a lot of topics we know we did not get to, I am hoping I can tackle some of these via blog posts or screencasts..
Going back to my old notes on every thing we did not get to I had: Controls, Styles, Templates FAQ Tips & Tricks on Blend.. way Beyond this very old article.. Tips & tricks on Blend + Cider, way beyond this intro old intro stuff.. Expression Designer (there was a lot we just did not get into) Tips & trickcs on creating data-driven apps..( I guess this overlaps w/ tips & tricks above)..
What else do you want to hear about?? Let us know; I am keeping a list and even if I move really, really slow... I will eventually get to it..
I have seen a few people create lots of animations to animate different objects instead of reusing existing storyboards.. When asked why they did that, they explain "I tried to reuse it but I got an "AG_E_RUNTIME_SETVALUE" when setting the property...
Here are the details on how animations/storyboards work so you can reuse them:
var sb = this.control.content.findName("reusable"); // we wire completed... so we know when to set the value.. sb.addEventListener("Completed", Silverlight.createDelegate ( this, this.onCompleted )); sb.begin (); .... onCompleted : function ( sender , args ) { var animation = sender.Children.getItem(0); var ctl = this.control.content.findName ( animation["Storyboard.TargetName"]) ; if ( ctl != null ) { var keyframe = animation.KeyFrames.GetItem(animation.KeyFrames.Count-1); sender.stop(); ctl["Canvas.Left"] = keyframe.value ; } } , Now the value is maintained... storyboard is stopped so it is reusable..
var sb = this.control.content.findName("reusable"); // we wire completed... so we know when to set the value.. sb.addEventListener("Completed", Silverlight.createDelegate ( this, this.onCompleted )); sb.begin (); ....
onCompleted : function ( sender , args ) { var animation = sender.Children.getItem(0); var ctl = this.control.content.findName ( animation["Storyboard.TargetName"]) ; if ( ctl != null ) { var keyframe = animation.KeyFrames.GetItem(animation.KeyFrames.Count-1); sender.stop(); ctl["Canvas.Left"] = keyframe.value ; } } , Now the value is maintained... storyboard is stopped so it is reusable..
A sample (including source) for these snippets is here... for instructions: Click on any rectangle to see it animate.. The demo begins with "Hold" checked because that is default behavior ( FillBehavior=HoldEnd) Click on the "stop animation before starting new one" to get around the AG_E_RUNTIME_SETVALUE Click on the "HoldEnd" to see the differences between FillBehavior = HoldEnd and FillBehavior = Stop Click on the "subscribe to event .. to set the value after animation has stopped"
A sample (including source) for these snippets is here... for instructions:
Most of the time I live in a 'shoe box' not knowing what is going on outside of my family and work; today is one of these days: I totally missed World AIDS Day concert.
Beyond the concert, to me the day is a reminder of AIDS realities:
Any way, it is AIDS day.. no matter when you are reading this .. it is good to think about that reality once a year (at least)[For those expecting usual techno ramble, will be back to scheduling programming tomorrow. Apologies in advance for the personal detour]