With the Silverlight 3 Tools for Visual Studio, developers get access to the Silverlight Navigation Application template.  By default the styles (which are located in the project’s Assets/Styles.xaml file) are really good and neutral for the application layout.  Now, keep in mind this is an overall application layout style and not control styles/templates.

In addition to the default look provided by the tools out of the box with Silverlight 3, we’re providing 7 additional application template themes for you to enjoy, extend, whatever.  Corrina and team had developed these for the community to consume and we’ve put them up on the Expression Community Gallery for download.  Here’s a preview with the links to each template:

Aurora (also available for RIA Services Template):

Aurora app theme

Frosted Cinnamon Toast (also available for RIA Services Template):

Frosted Cinnamon Toast app theme

Lime Shocker (also available for RIA Services Template):

Lime Shocker app theme

Pinky (also available for RIA Services Template):

Pinky app theme

Retro:

Retro app theme

Skyline:

Skyline app theme

Subdued:

Subdued app theme

There you go, we hope you enjoy them.  Download the zip file and you will see a Styles.xaml file included.  Simply put this in the applications Assets folder, replacing the default and you will automatically have the new theme in your application.

Hope this helps!

UPDATE: FloatableWindow is now on CodePlex for easier community contributions and management of latest source and builds.  FloatableWindow CodePlex Project. If you like this idea VOTE FOR IT in the Silverlight Toolkit!

A while back I wrote a post where I refactored the Silverlight ChildWindow to create a non-modal window and I called it FloatableWindow (you can see why I’m not a good marketer…hey I could have called it Microsoft Silverlight ChildWindow Refactored Edition Express).  A few folks found it useful, for which I’m appreciative of the comments.

My buddy Karl Shifflett decided to use it in Glimpse as the diagnostic window – thanks Karl!  Karl even added some code to it to basically provide a start position (HorizontalOffset and VerticalOffset).  Another request Karl had was to add resizing capabilities to the window.

I’m pleased to say that I added both of these features to the source.  I modified Karl’s offset properties a bit to not only include them in the Show() override, but also as public properties that would be used if available.  For resizing, I added a ResizeMode property which matches the System.Window.ResizeMode enumeration.  I chose to use that enumeration for some consistency with WPF APIs, but frankly it really only supports CanResize and NoResize with the default being CanResize.  You can see an example of the resizing capabilities here in this animation:

As you can see (sorry for the horrible animated image but just wanted to make it simple), the resizing handle will appear in the lower right corner of the window.

UPDATE: Based on Laurent/yaip’s feedback I reverted back to my original design, here’s the mouse out (normal) and mouse over states for the handle:

 

  I chose to make it invisible unless someone moves their mouse into that position.  Is that the wrong UX do you think?  I know it isn’t entirely consistent with something like WinForms, but I wanted to be a little different. 

Additionally I wanted to use the SizeNWSE Cursor as a normal WPF/WinForm window would use, but unfortunately that’s not a valid Cursor for Silverlight right now.

I did try to make the resizing adorner a template part so you could make it something else (right now it is just a path).  I haven’t really tried messing with it that much though.

I think my math might be a bit off in some scenarios and I’m still frustrated with the Popup and ZIndex issue in Silverlight, but I know there is an open issue for Silverlight to look at this so I’m trying to stay calm about it.  Anyhow, some subtle adds to make it hopefully just a bit more useful for anyone who cares (or cares to learn from it).

You can download the source code here: FloatableWindow_1.3.zip

Hope this helps and I appreciate any comments regarding the update or if you see issues in your scenarios. 

Customer Satisfaction is Worthless, Customer Loyalty is PricelessOne of my little non-technical pet peeves in life is poor customer service.  A long while back while working at a booming consulting firm in the ‘.com days’ (which later imploded of course) the company routinely brought in different types of speakers.  Some for motivation, some for sales training (anyone who can tell me who ‘peel the onion’ comes from wins a gold star), etc.  One that stood out was from Jeffrey Gitomer.  He’s probably more famous for his book Little Red Book of Selling, but at the time he also spoke to our entire staff (non-sales, developer, etc.) about customer satisfaction and was pimping his book Customer Satisfaction is Worthless, Customer Loyalty is Priceless: How to Make Them Love You, Keep You Coming Back, and Tell Everyone They Know at the time.  I normally don’t buy into these meetings, but Gitomer and his approach grabbed my attention.  Since then I’ve been enamored striving for myself providing the best customer service in whatever I do, but also in finding out why people do/don’t in their businesses.  I completely bought into Gitomer’s mantra about satisfaction and loyalty.  I went to somewhat of a soapbox when I had issues with my homebuilder’s customer service department that I sent their directors a copy of the book when I had such horrible experiences.  I don’t think they appreciated it…then again, they were okay having satisfied customers.

Anyhow, fast forward a long time and here I am today.  I’ve had positive and negative customer service experiences everyday just like I’m sure you have.  Last week though was a shining star in customer service as well as how to treat customers in a tough economy.  Allow me to explain…

We have a television set in our main room that mostly the kids watch.  It is about 5 years old now and is an LCD display.  We bought it when we moved into our current home and it was the best deal based on what we wanted to spend at the time.  It has served us well for the time we’ve had it.  About 2 months or so ago, a small yellow orb started to appear in the center bottom of the screen.  At first I thought it was just time to change the bulb.  Calling my local electronic repair shop, he informed me it was something more serious and a common problem with this particular model (which was branded as Zenith E44W46LCD, now owned by LG Electronics).  He also said it would be about $800 to repair (needed a new light engine).  Crap.  Heck for $800 I could get a new TV!  I did some research and learned that the actual part was about $2 but it was in a larger part.  I decided it wasn’t worth the repair cost and would just wait until the TV blew up to replace it.  My kids would have to suffer :-).  Well over time the little orb has grew to the entire screen and now my kids know that yellow+blue make green.  It got so bad that I started convincing myself it was time to replace it.  I decided to research one more time just to make sure.  In that research I found one small note indicating that one guy called LG and worked it out with them.  I had nothing to lose.

LG Electronics logoOne phone call later I spoke with a nice lady who, after hearing my symptoms, confirmed it was a ‘failure of the light engine unit’ and apologized for the problem.  Remember, my TV is clearly out of warranty at this point.  Without asking me anything about when/where I purchased it (to be fair I think the initial system asked me this information though, so she may have had it in front of her), she said that LG is sorry that their product is failing me and would like to offer to cover the cost of this expensive repair.  Another phone call later, my local authorized repair facility was contacted, faxed a letter to authorize the repair and schedule the work.

WOW.  I was blown away.  I wasn’t told anything about expired warranties, I wasn’t told to step aside.  I wasn’t told to buy a new set.  I was taken care of…completely.  LG Electronics just effectively gave me a new TV and saved me roughly $800 (estimate of course).  Wow, wow, wow.  I was floored. 

I believe this is the essence of what Gitomer talks about.  LG/Zenith aren’t known for their expertise in my mind for LCD/DLP projection sets (in fact my research later led me to buy a Samsung unit for my basement), but this service goes above and beyond and elevated their products in karma points!  It will absolutely make me think twice in my next purchases of home consumer electronics. 

Their call center staff was among the nicest I’ve ever spoke to as well.  I know they’re all following scripts (or perhaps they are not and it is just their southern charm, because clearly by the accents they are somewhere with a drawl :-)) but they have been the kindest ladies I’ve ever spoke with, asking permission to place me on hold, thanking me for bringing things to their attention, apologizing for things that the product failed, etc.  The whole process of communicating with LG Electronics has been amazing, simply amazing.

I am sure some people have had negative experiences with LG (and if they have they’ll probably comment below), but I can only speak of my one interaction with LG here, and it has been a hugely positive one that has turned me from a satisfied customer willing to deal with a failing 5 year old TV for which I probably would have replaced with some other brand, to a more than satisfied, dare I say loyal LG customer who will consider them first for any future purchases.  And no, they didn’t ask me to write this as a condition of repair, nor am I receiving any additional benefits from sharing my story.

Thanks LG, you excel in a time when it counts the most.  I applaud you.

I was honored to be asked by ComponentArt to participate in a judging panel for their just now released 2009 Summer Silverlight Coding CompetitionThe grand prize is USD $10,000. 

Yes, that’s right: USD $10,000!

ComponentArt Silverlight Coding Competition

ComponentArt is even kicking in 2 runner-up prizes of licensing to their products, which is also a sweet deal!  The contest is simple, and you are not required to use ComponentArt controls…in their words:

Applicants are not required to use ComponentArt's products to enter the competition (or as the legal jargon requires us to say: NO PURCHASE NECESSARY). We'll obviously let you use our products if you want to, but the purpose of this contest is to increase awareness of Silverlight features and applications already released, so we would like to keep it open to the entire Silverlight developer community.

Be sure to read the full contest rules for all the details.  There is a number of judging criteria that will be ranked by 9 total judges: myself, Laurence Moroney, Mike Snow, Dino Esposito, John Papa, Steve Smith, Milos Glisic, Phil Tucker, and Corey Cahill.  As you can see, this is a judging panel made up of Microsoft, ComponentArt and community leaders.

Obviously your application needs to be a Silverlight application, I hope that’s clear.  It must be accessible via a public entry point and if authentication is required, adequate credentials will need to be supplied.  If after reading the rules you have questions, please ensure you contact the email provided in the rules and FAQ for the contest.

What are you waiting for?  $10K up for grabs!!!!

Here are my current Silverlight book recommendations…

Get Microsoft Silverlight