Foundation Blend 3 with Silverlight – Updates

Two very astute and awesome readers found a bunch of errors in my latest book that were more often than not due to newer releases of Blend 3.  Further, they wrote down each issue and how they were able to overcome it.  Below is the list they compiled.  Thanks Guys!

Chapter 2:
Page 47-  Problem: You state that after completing the tutorial the reader should press F6 to return to the design workspace and then F5 to run the application, however, this failed to work.
Solution: We found that we needed to add “StoryBoard1.Begin();” in cs code behind in order to get the program to actually compile and run.
Chapter 3:
Page 67 – Inconsistency: Under task 15 you state that the reader should see a message box with the two fruits but not their actual colors. That step was to be implemented next. The image file you place below task 15, however, shows the color (the actual completed program) as compared to the actual message box they should recieve.
Solution: Obviously the book has been published! So maybe just a note.
Chapter 5:
Page 98- Mistype: Task 2 says “In the InitializeComponent method….”
Solution: We believe this should be “Under the initializeComponent method…” minor issue but we are telling you everything!
Page 98- Mistype:Task 3 you ask the reader to begin by typing “the name of the Rectangle (MyRectangle). Then type += and press the tab key twice…”
Solution: Although in the sample code you correctly input the code, we felt that this should instead state “the name of the Rectangle (MyRectangle) then period and MouseEnter. Then type += and press the tab key twice..”
Page 103- Confusion/Update?: Task 1 you ask the reader to “right click the project and click Add>class.” our intitial response was to add the class to the since the image below the task seems to imply this is the correct action.
Solution: Instead we felt this should read “right-click the Silverlight project and click Add>class” This reduces confusion.
Chapter 6:
Page 113- Update:Task 6 Figure 6-3 states to make certain the New Project Dialog box is the same, obviously Blend 3 has been updated with a new interface for the new projects so this image is out of date. (As a note, some of the keyboard shortcuts have been changed as well, such as pressing F7 to switch to the Animation workspace in Blend3)
Page 116 – Mistype: Task 1- you ask the reader to taype the name of the rectangle(MyButton)…obviously this should be (MyRectangle)…
Solution: we changed the name
Page 117- Inconsistency: your code correctly implements your actions, however, the Loaded+= new RoutedEventHandler(Page_Loaded); was never mentioned and is not placed in bold when printed…
Solution: we added it.
Page 122- Update/Inconsistency: Task 24 you group the 3d button you create (Very cool by the way) into a canvas, however we found that this caused problems for our program and prevented it from running correctly.
Solution:We ended up having to switch this to a grid in order to make it function properly… Im not sure if this is an error on your part, or just a new update that made the tutorial not work… either case its worth looking into…
Page 124- Lack of Information: Task 28 you instruct the reader to configure the ContentPresenter of the button, however you don’t go into how to make the text on the button Center correctly, which took some trial and error on our part… Minor but we thought worth mentioning.
Page 128- Mistype: you copy in a bunch of code for the reader to copy, however, you forgot to open the Ellipse.Fill 3 lines down… it reads Ellipse.Fill>
             <RadialGradientBrush GradientOrigin=…….>
Page 138- Mistype: task 1 you ask the reader to select the background and copy it, this however fails to provide the result you are looking for.
Solution: we believe that you meant to ask them to select the backplate instead…
Page 140- Mistype: Task 5 you have some typos… 3 lines down you say that when the mouse enters the player the animations should disappear instead of appear… this train of thought continues incorrectly. Essentially the actions are backwards…
Chapter 7:
Although this is not an error, On page 169 we were a bit confused about the DependencyProperty you were having us create and we thought a small paragraph explaining what one was would be nice… obviously not something neccesary for this book but maybe for your next it could be an addition…
Page 175- Mistype: the “private UIElement draggedElement;” should be “private UIElement _draggedElement;”
this error appears again on page 177 4 lines down into your code…
Chapter 9:
Page 201- Mistype: Task 1 you state that the reader should type click then += and tab twice… this should read “type MyButton.Click+= then tab twice”
Chapter 10:
Mistype: Despite telling the reader to name his methods “ShowModeOfTransportation” and “ShowNumberOfSeats” for the rest of your code you don’t actually include the Show prefix… This remains true for your entire chapter.
Chapter 13:
Page 299- Update/Mistype: Task 4 you say to open the application Flow panel… We believe this has been renamed to SketchFlow Map and instead of Start being the default page it is now Screen1…
Page 303- Mistype: Task 18… WigglyStyles no longer exists… I think its been changed to sketchButtons and such…
page 304- Update/Mistype: task 21 you ask the reader to select “Make into Composition Screen” this should read “make into Component Screen”
Chapter 14
Page 321- Update: Task 5 you ask the reader to delete MainControl.xaml… this has been renamed to MainPage.xaml… This is pretty common mistype though… Like in VS the Page.xaml is now MainPage.xaml… I dont know that this is much of a concern…
Page 327- Inconsistency/Mistype:Task 34… This code is all messed up.. I would definately take another look! You don’t do anything under InitializeComponent yet you have a routedEvent… We just ignored the entire thing…

    • Cindy K.
    • August 27th, 2009

    RE: Page 124 – So HOW DO YOU center the text on the newly created button?

    • Cindy K.
    • August 28th, 2009

    RE: Page 122 and 124 – Changing the Canvas to a Grid is the KEY to getting this to line up properly. It appears that the Canvas Layout Control ignores HorizontalAlignment and VerticalAlignment. Then you can go into your button’s Layout controls, expand the Layout bucket to show everything, find the HorizontalContentAlignment and VerticalContentAlignment and set those to CENTER in order to get the buttons to display correctly.

  1. Hello Cindy! I get this question so much that I created this short video tutorial showing you how to replace the ContentPresenter (that does not have Center Justification) with a TextBlock (that DOES have Center Justification) and then use Template Binding to show the correct Button text. You can see the video here:


      • Tim
      • December 28th, 2009

      I am making my way through your example in Chapter 6. I followed the instructions and noticed that that the ContentPresenter element gets positioned outside the Grid elements but within the Canvas elements.


      This caused me the same issue pointed out by Cindy. In order to correct the problem, I moved the ContentPresenter within the Grid elements and this seemed to work.

      I tried to reach your video but the link was not available. Is my approach sound?



    • Jack B.
    • October 28th, 2009

    Introduction – Online resources
    You mention the Appendix, but there is no Appendix.

    Also, Chapter 13 on SketchFlow is practically useless, due to the final changes to SketchFlow. Do you have an on-line revised version that falls inline with the final product?

    • John
    • November 23rd, 2009


    Love the Expression Blend 3 book, but a few things of note:

    First, the link above for a template binding tutorial, posted in response to Cindy, is no longer valid.

    Second, the download link for Chapter 6 on the friendsofed site is actually a link to the functional media player, not a download link for the associated solution.

    And third, though you refer early in the book to an appendix containing the means to access many online resources, but the book was published containing no appendices.

    Still, love the book, but resolving the first two above would be extremely helpful…


  2. Hello John and thank you for your observations. I have corrected the Template Binding tutorial to point to the correct URL; I have been changing the format to have the videos open in an HTML page and thus giving them new URLs. I guess this one slipped by me…Opps! Here is the updated post with the correct URL:

    As for the second issue, I only posted a link to the functioning SLVSMMediaPlayer player and not the Solution; I am not sure why but this is as intended. But, I uploded the solution for you and you can find it here:

    As for the appendix, well I guess that was just a mistake. Sorry 😦

    Hope this helps and I am very happy you are enjoying the book in spite of the errors you found.


    • Tim
    • December 28th, 2009

    Tim :
    I am making my way through your example in Chapter 6. I followed the instructions and noticed that that the ContentPresenter element gets positioned outside the Grid elements but within the Canvas elements.


    This caused me the same issue pointed out by Cindy. In order to correct the problem, I moved the ContentPresenter within the Grid elements and this seemed to work.
    I tried to reach your video but the link was not available. Is my approach sound?

  3. If it works it is sound but the use of a TextBlock and TemplateBinding is a sure fire fix. I am working on getting my URLs up and running again.

    Thanks, Victor

      • Tim
      • December 30th, 2009


      Thanks for getting the videos up and running again. Having viewed the relevant video, I figured out what I was doing wrong. The book (Expression Blend 3, Ch. 6, p.122, point 24) advises to right click the Objects and Timelines and ‘Group Into Canvas’. This caused the text to fall outside the button.

      In viewing the video, I altered this step to Group Into Grid. After converting it into a Control, I was able to get the text to center without the need to change the ContentPresenter to a TextBlock. (I appreciate that the TextBlock may offer greater flexibility)

      Is this a change from the beta version perhaps or a simple typo?

      Thanks again for your help. Great book!


    • Bill Cohagan
    • January 1st, 2010

    Working my way through the paperback. On p 33. I get to step 3 (Click the +Brush button…) and apparently slip into another dimension as what I see on my screen doesn’t mesh at all with the steps that follow. First I’m guessing that by “+Brush” you mean the “Brush Resources” button. That’s the tooltip that comes up when I mouse over the button whose graphic matches that in fig. 2-39; however on my screen it’s the 5th (not 4th button). The 4th button is another “double” with tooltip, “Tile Brush”?

    Anyway, after selecting the Brush Resources button I see no “Create Color Resource dialog box as mentioned in stpe 4. So, I’m lost an unable to proceed.

    Quite frustrating!?

  4. Hello Bill, Let me look into this right now and get back to you shortly. Victor

    • Bill Cohagan
    • January 1st, 2010

    Chapter 4, p 72: “…create a new Silverlight Application project, and call it LayoutControlsProject, as shown in Figure 4-1.” The referenced Fig 4-1 shows the dialog with a new project named LayoutControls (not LayoutControlsProject).

    • Appreciate that one. Guess it slipped by my two editors. At least it is not a deal breaker like the first error you found. Thanks for paying such close attention. Victor

    • Bill Cohagan
    • January 1st, 2010

    Thanks for the quick responses to both items.


    • Jon
    • March 22nd, 2010


    Love the book, having trouble getting the code to work in CH7, even after taking care of all the reference issues. Is there a place where we can view the entire code? The book is missing an Appendix is this a publishing fubar?


    • Adam
    • March 30th, 2010


    I am on page 209 and you refernce a download at That link is no longer valid. Is there an updated one?


      • Adam
      • March 30th, 2010

      Never mind. I must have misstyped several times but managed to type it correct in the post.


    • Jaco
    • April 9th, 2010

    For thosse strugling with the alignment of TextBlocks…

    Open the XAML, and locate the annoying textblock.
    Swear profusely.
    Change the Height and Width setting to “Auto”,
    set HorizontalAlignment to “Center”,
    set VerticalAlignment to”Center”.
    Save, build.

    Change to design view and it *should* work. So far it worked for me. 🙂

    Thanks for the book! Really learning a lot!

    • Amir
    • April 14th, 2010

    Hi Victor,

    Chapter 4 p. 78, last paragraph. I cannot understand in what way does the grid control the positioning of its child objects to be able to understand what you mean by the sentence “the Canvas cannot implicitly change the position of its child objects.”, since dragging the left and top side of the Canvas repositions its child object just as dragging the sides of the grid repositions the Canvas.



  5. Page 33 item number 3: Click the +Button button in the brushes bucket of the property panel. What does the +Button button look like?

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: