<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Unni's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/unnir/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/unnir/feed.xml</link>
    <description>Design, Expression Blend, Silverlight, WPF, Windows Phone</description>
    <lastBuildDate>Tue, 16 Apr 2019 05:33:34 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Hosting a Silverlight application in a custom website</title>
      <link>https://docs.microsoft.com/archive/blogs/unnir/hosting-a-silverlight-application-in-a-custom-website</link>
      <pubDate>Thu, 23 Sep 2010 11:43:00 GMT</pubDate>
      <dc:creator><![CDATA[Unni Ravindranathan - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/unnir/2010/09/23/hosting-a-silverlight-application-in-a-custom-website/</guid>
      <description><![CDATA[To create a Silverlight application and host it in a custom website, you could use the following...]]></description>
      <content:encoded><![CDATA[<p>To create a Silverlight application and host it in a custom website, you could use the following steps:</p> <p>a) Create a Silverlight project in Blend, and test it. We assume that you are now ready to publish the application on a website.</p> <p>b) Open the solution in Visual Studio 2010</p> <p>c) Right click on the solution node Add -&gt; New Website (Existing Website if you already had one)</p> <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/51/84/metablogapi/8168.image_4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-51-84-metablogapi/8168.image_5F00_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/51/84/metablogapi/8255.image_thumb_1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-51-84-metablogapi/8255.image_5F00_thumb_5F00_1.png" width="489" height="339" /></a> </p> <p>f) Right click on the website in Visual Studio, choose Property Pages, and in the dialog that opens up, choose Silverlight Applications</p> <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/51/84/metablogapi/6012.image_6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-51-84-metablogapi/6012.image_5F00_6.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/51/84/metablogapi/5428.image_thumb_2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-51-84-metablogapi/5428.image_5F00_thumb_5F00_2.png" width="495" height="286" /></a> </p> <p>g) Choose Add.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/51/84/metablogapi/0652.image_10.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-51-84-metablogapi/0652.image_5F00_10.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/51/84/metablogapi/0245.image_thumb_4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-51-84-metablogapi/0245.image_5F00_thumb_5F00_4.png" width="431" height="397" /></a> </p> <p>h) In the dialog that shows up, choose "Add" and the choose OK in the website property pages dialog. Optionally, you can make a few changes - for example, you can uncheck the "Add a test page that references the control" if you wanted to author your webpage from scratch.</p> <p>i) Right click on the website and set the site as the startup project (Set as Startup Project)</p> <p>j) Right click on the page that was automatically added for you (SomethingTestPage.html) when you added the Silverlight project into the site and set it as the start page (Set as Start Page)</p> <p>k) Hit F5 and you are all set!</p> <p>You can now make arbitrary changes to the SomethingTestPage.html page, including renaming it to something meaningful like Default.html.</p>]]></content:encoded>
    </item>
    <item>
      <title>Project and Item template support in Expression Blend</title>
      <link>https://docs.microsoft.com/archive/blogs/unnir/project-and-item-template-support-in-expression-blend</link>
      <pubDate>Fri, 17 Sep 2010 10:15:00 GMT</pubDate>
      <dc:creator><![CDATA[Unni Ravindranathan - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/unnir/2010/09/17/project-and-item-template-support-in-expression-blend/</guid>
      <description><![CDATA[Expression Blend 4 has support for authoring custom project and item templates, similar to Visual...]]></description>
      <content:encoded><![CDATA[<p align="left">Expression Blend 4 has support for authoring custom project and item templates, similar to Visual Studio. However, our support is a strict subset of what Visual Studio supports, and a few changes are necessary to the .vstemplate file to have the projects and items correctly displayed in Blend. A notable exclusion to what Blend supports, when compared to Visual Studio, is the ability to invoke custom wizards that can be used to customize a template when a new template is instantiated.</p>
<h1>
<h5>
<p><span style="font-size: medium;">Getting started</span></p>
</h5>
</h1>
<p align="left"><strong></strong>The best way to get started on creating a new project or item template is to use an already existing Blend project or item template. When you install Blend, project templates are installed at C:\Program Files (x86)\Microsoft Expression\Blend 4\ProjectTemplates\en and item templates are installed at C:\Program Files (x86)\Microsoft Expression\Blend 4\Templates\en.</p>
<p align="left">Let us walk thru the process of taking of these, and customizing it a bit. Let's pick C:\Program Files (x86)\Microsoft Expression\Blend 4\ProjectTemplates\en\CSharp\Silverlight\Application. Let's assume that we wanted to customize this template such that a new additional UserControl document is added into the project to start with.</p>
<h4><span style="font-size: medium;">Key changes to be made to a project template</span></h4>
<p align="left">To modify this template, unzip the contents of the zip file (Blend will support extracting templates from zip files, just like VS, but we also support templates that are supplied in an unzipped folder) to a temporary folder, say c:\Temp.</p>
<p align="left">The first thing we want to do is to change the following attributes in the csSilverlightApplication.vstemplate file (you can rename this file too if you wanted):<br /><br />&lt;Description _locID="BLEND_ProjectDescription"&gt;A project for creating rich cross-platform, web-based applications.&lt;/Description&gt;<br />&lt;Icon&gt;ProjectIcon.png&lt;/Icon&gt;<br />&lt;TemplateID&gt;Microsoft.Blend.SilverlightApplication&lt;/TemplateID&gt;<br />&lt;NumberOfParentCategoriesToRollUp&gt;0&lt;/NumberOfParentCategoriesToRollUp&gt;<br />&lt;TemplateGroupID&gt;Silverlight&lt;/TemplateGroupID&gt;<br />&lt;SortOrder&gt;40&lt;/SortOrder&gt;</p>
<p align="left"><strong>Description</strong> and <strong>Icon</strong> are self-explanatory. For <strong>TemplateID</strong>, change the string to something unique, for example Microsoft.Blend.SilverlightApplication.NewTemplateWithUserControl. If you had C# and VB versions of your templates, you will want to make sure that they share the same TemplateID to be correctly classified in the project dialog. <strong>NumberOfParentCategoriesToRollUp</strong> dictates the number of node levels the template would be visible if you did have a hierarchy of nodes in the project dialog. <strong>SortOrder</strong> is the order in which the templates are sorted at a particular level in the hierarchy. <strong>TemplateGroupID</strong> represents the hierarchy in the dialog - if you were to change this to Silverlight<strong>;</strong>Foo, the template would end up showing under the Foo node under the Silverlight node.</p>
<p align="left">The next thing to modify is to add two new entries for the additional file we want added to a new project when the template is instantiated:<br /><br />&lt;ProjectItem ReplaceParameters="true" &gt;MainControl.xaml&lt;/ProjectItem&gt;<br />&lt;ProjectItem ReplaceParameters="true" SubType="Code"&gt;MainControl.xaml.cs&lt;/ProjectItem&gt;</p>
<p align="left">The <strong>ReplaceParameters</strong>="true" attribute will ensure that when the template is instantiated, Blend will make a pass over the contents of those files and replace any template arguments within those files (in this case, we are going to be having arguments for the default namespace that the control should belong to). If you were adding content into the template that did not have any parameters, say an Image asset, you could use ReplaceParameters="false". Also, if you wanted the item to be opened by default when a new project is created, you could use the <strong>OpenInEditor</strong>="true" attribute. The format for the TemplateContent section of the .vstemplate file is pretty much identical to the VS format, including support for creating additional assembly references, multiples projects, etc.</p>
<p align="left">We need two additional steps to add the files themselves:</p>
<ul>
<li>
<div align="left">Copy and paste MainPage.xaml and MainPage.xaml.cs as MainControl.xaml and MainControl.xaml.cs respectively. If you edit MainPage.xaml, you will notice something like x:Class="$safeprojectname$.MainPage" - this should be updated to x:Class="$safeprojectname$.MainControl". When the template is instantiated, $safeprojectname$ gets replaced with whatever name the user specified when creating a project. Do the same for MainControl.xaml.cs, and update the name of the class to MainControl.</div>
</li>
<li>
<div align="left">Edit the .csproj file, to include the MainControl.xaml, and MainControl.xaml.cs files.</div>
</li>
</ul>
<h4><span style="font-size: medium;">Installation of templates</span></h4>
<p align="left">To install the custom template we just created, you could optionally zip the template. Then copy the folder (or the zip file if you chose to zip the contents) into <strong>C:\Users\&lt;username&gt;\Documents\Expression\Blend 4\ProjectTemplates</strong>.\ Restart Blend and the new template should show up in the dialog. For item templates, you can install them into <strong>C:\Users\&lt;username&gt;\Documents\Expression\Blend 4\ItemTemplates\.</strong></p>
<p align="left">Unfortunately, Blend does not support custom template folders that apply to all users on a machine. If you wanted this, you would need to install the template under the Blend program files folder, alongside the various other Blend templates. Also, the hierarchy of the folders does not matter - you can copy your template anywhere you like, but you should consider creating a new top level folder for your templates to avoid collisions with other templates.</p>]]></content:encoded>
    </item>
    <item>
      <title>ToolboxExampleAttribute - a new extension point in Blend 4 (and a few other extensibility related changes)</title>
      <link>https://docs.microsoft.com/archive/blogs/unnir/toolboxexampleattribute-a-new-extension-point-in-blend-4-and-a-few-other-extensibility-related-changes</link>
      <pubDate>Tue, 16 Mar 2010 13:26:56 GMT</pubDate>
      <dc:creator><![CDATA[Unni Ravindranathan - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/unnir/2010/03/16/toolboxexampleattribute-a-new-extension-point-in-blend-4-and-a-few-other-extensibility-related-changes/</guid>
      <description><![CDATA[For Blend 4, we have added a new extension point to our Asset library - ToolboxExampleAttribute....]]></description>
      <content:encoded><![CDATA[<p>For Blend 4, we have added a new extension point to our Asset library - ToolboxExampleAttribute. Like most of our other attributes</p> <p>Consider this scenario (which we ran into as we were adding new content into our SDK - the various shapes like Star, Arc, Donut, etc): say you have a type Foo that is a Control you want to show in the Blend asset library. However, when Foo is instantiated, you want to set a set of properties. In the past, you could have done this with the DefaultInitializer concept, but the problem is that there can be only one DefaultInitializer associated with a type. And you don't really want to subclass Foo to have different types just for the purpose of having them show up in the Blend asset library.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/unnir/WindowsLiveWriter/ToolboxExampleAttributeanewextensionpoin_BA3B/image_2.png" original-url="https://blogs.msdn.com/blogfiles/unnir/WindowsLiveWriter/ToolboxExampleAttributeanewextensionpoin_BA3B/image_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/unnir/WindowsLiveWriter/ToolboxExampleAttributeanewextensionpoin_BA3B/image_thumb.png" original-url="https://blogs.msdn.com/blogfiles/unnir/WindowsLiveWriter/ToolboxExampleAttributeanewextensionpoin_BA3B/image_thumb.png" width="179" height="327"></a> <br><br>Enter ToolboxExampleAttribute. Now you can have multiple "examples" of the same type, each of which will result in the generation of different XAML. To use this attribute is very straightforward - you would hook this up just like any other attribute in the design time library. Here is a simple code snippet of how you could use this feature:</p> <p>internal class ExampleOne : IToolboxExample<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public ModelItem CreateExample(EditingContext context)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Return a ModelItem instance that sets appropriate properties<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Stream GetImageStream(System.Windows.Size desiredSize)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Return an icon image stream<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string DisplayName<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return "Something"; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; } <p>And to register the example:</p> <p>internal class MetaDataStore : IProvideAttributeTable<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Called by the designer to register any design-time metadata.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public AttributeTable AttributeTable<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AttributeTableBuilder tableBuilder = new AttributeTableBuilder();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typeof(Inker),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new ToolboxExampleAttribute(typeof(ExampleOne)));  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return tableBuilder.CreateTable();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }</p> <p>Also, you will be happy to know that Silverlight 4 adds a bunch of new attributes to the core platform that would have required you to author a design-time library in the past to supply for your custom controls - some examples of newly added attributes that I really like as the greatly enhance the design-time experience:<br>System.ComponentModel.AlternateContentPropertyAttribute in System.Windows.dll<br>System.ComponentModel.DefaultBindingPropertyAttribute in System.Windows.dll</p>]]></content:encoded>
    </item>
    <item>
      <title>Expression Blend 4 - XAML generation tweaks</title>
      <link>https://docs.microsoft.com/archive/blogs/unnir/expression-blend-4-xaml-generation-tweaks</link>
      <pubDate>Tue, 16 Mar 2010 12:57:25 GMT</pubDate>
      <dc:creator><![CDATA[Unni Ravindranathan - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/unnir/2010/03/16/expression-blend-4-xaml-generation-tweaks/</guid>
      <description><![CDATA[With Blend 4, we have made a number of significant changes to how we generate XAML, primarily with...]]></description>
      <content:encoded><![CDATA[<p>With Blend 4, we have made a number of significant changes to how we generate XAML, primarily with the aim of generating more compact XAML. You will find a couple of these interesting:</p> <p><strong>a) DoubleAnimation v/s DoubleAnimationUsingKeyframes<br></strong>In Blend 3, rotating a Rectangle in a Storyboard would give you the following:<br>&lt;Storyboard x:Name="Storyboard1"&gt;<br>&nbsp;&nbsp;&nbsp; &lt;<font color="#ff0000">DoubleAnimationUsingKeyFrames</font> BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<font color="#ff0000">EasingDoubleKeyFrame </font>KeyTime="00:00:00" Value="15.091"/&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/<font color="#ff0000">DoubleAnimationUsingKeyFrames</font>&gt;<br>&lt;/Storyboard&gt;</p> <p>In Blend 4, you now get the following (Note that you will find the user experience identical between Blend 3 and Blend 4 - if you were to drop an additional key frame, we will convert the animation to the type that lets you do keyframing)<br>&lt;Storyboard x:Name="Storyboard1"&gt;<br>&nbsp;&nbsp;&nbsp; &lt;<font color="#008000">DoubleAnimation</font> <strike>BeginTime="00:00:00"</strike> Duration="0:0:1.6" To="12.228" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" Storyboard.TargetName="rectangle" d:IsOptimized="True"/&gt;<br>&lt;/Storyboard&gt;</p> <p><strong>b) TransformGroup v/s CompositeTransform<br></strong>In Blend 3, rotating a Rectangle would give you the following:<br>&lt;Rectangle x:Name="rectangle" Fill="White" Stroke="Black"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Rectangle.RenderTransform&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TransformGroup&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ScaleTransform/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SkewTransform/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;RotateTransform Angle="15"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TranslateTransform/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/TransformGroup&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Rectangle.RenderTransform&gt;<br>&lt;/Rectangle&gt;</p> <p>In Blend 4, you now get the following:<br>&lt;Rectangle x:Name="rectangle" Fill="White" Stroke="Black"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Rectangle.RenderTransform&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;CompositeTransform Rotation="15"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Rectangle.RenderTransform&gt;<br>&lt;/Rectangle&gt;</p> <p>Are there any other areas where you find the XAML being generated by Blend is more verbose than that would you would have liked? If so, I would love to hear about them!</p>]]></content:encoded>
    </item>
    <item>
      <title>Introducing sample data for Developers</title>
      <link>https://docs.microsoft.com/archive/blogs/unnir/introducing-sample-data-for-developers</link>
      <pubDate>Sun, 12 Jul 2009 15:37:00 GMT</pubDate>
      <dc:creator><![CDATA[Unni Ravindranathan - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/unnir/2009/07/12/introducing-sample-data-for-developers/</guid>
      <description><![CDATA[Blend 3 brings to the table really sophisticated support for sample data, enabiling better...]]></description>
      <content:encoded><![CDATA[<P mce_keep="true"><FONT size=3 face=Calibri>Blend 3 brings to the table really sophisticated support for sample data, enabiling better designability of your applications. In my previous <A href="https://blogs.msdn.com/unnir/archive/2009/03/18/introducing-sample-data-support-in-blend-3.aspx" mce_href="https://blogs.msdn.com/unnir/archive/2009/03/18/introducing-sample-data-support-in-blend-3.aspx">post</A>, I demonstrated how designers could leverage this feature to prototype data connected applications inside Blend . However, for really sophisticated applications, richer support&nbsp;might be&nbsp;desirable - for example, you might want to use your own custom types for sample data in the cases where you cannot re-create the schema from scratch using the primitives that we provide.&nbsp;</FONT></P>
<P mce_keep="true"><FONT size=3 face=Calibri>Here is a small example that will help you get started on a feature that we just introduced in recently available Blend 3 build – we call this feature “design data”. This feature allows developers to enable designers to be more productive inside Blend for practical LOB applications where there is a clear separation between model and view, and where you can’t use the Blend sample data feature as your UI might depend on your custom business objects (for example, think typed data templates in WPF).</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3 face=Calibri><A href="https://cid-99b45ff02d12b84d.skydrive.live.com/self.aspx/Public/Downloads/DesignDataSample.zip" mce_href="https://cid-99b45ff02d12b84d.skydrive.live.com/self.aspx/Public/Downloads/DesignDataSample.zip">Design Data Sample</A></FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal mce_keep="true">&nbsp;</P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3 face=Calibri>Let us take a quick tour of this example, and see how things work behind the covers:</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3 face=Calibri></FONT>&nbsp;</P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3 face=Calibri>ShoppingCart.cs defines a data structure that we are trying to visualize in ShoppingCartView.xaml. The type ShoppingCart does not have a public constructor, neither does ShoppingCartItem. Similarly, ShoppingCart has a read-only property ItemsCount. These kinds of limitations are extremely common in real-world data structures (and is being demonstrated here to show how our system handles these limitations just fine, without requiring your to make changes to your run-time code)</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3 face=Calibri>The sample data for ShoppingCartView.xaml is defined in ShoppingCartSampleData.xaml, which is included with a special build item type in the project file: &lt;DesignData Include="ShoppingCartSampleData.xaml" /&gt;. This ensures that you<FONT color=#1f497d> don't </FONT>pay any&nbsp;run-time penalties for enabling this design-time only feature.</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><BR><FONT size=3 face=Calibri>The contents of ShoppingCartSampleData.xaml look like following:</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">local</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">:</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">ShoppingCart<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">:</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt">local</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">="clr-namespace:DesignDataSample;assembly=DesignDataSample"</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt"> <FONT color=#ff0000>ItemCount</FONT><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">="22"&gt;</SPAN></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt"></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">local</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">:</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">ShoppingCart.Items</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">&gt;<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">local</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">:</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">ShoppingCartItem</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt"> ItemName</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">="Book Name 1"</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt"> ItemDescription</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">="A very nice book!"</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt"> ItemImage</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">="/DesignDataSample;component/MySampleDataImages/Tree.jpg"/&gt;<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">&lt;/</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">local</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">:</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">ShoppingCart.Items</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">&gt;</SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt"></SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">&lt;/</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">local</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">:</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">ShoppingCart</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">&gt;</SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3 face=Calibri>There are a few things to note about the contents of this file:</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>a)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>While the format is XAML, we have relaxed the specification quite a bit. You are allowed to specify a value for the read only property (ShoppingCart.ItemCount, ShoppingCartItem.ItemName), as well as initialize objects that don’t have public constructors (ShoppingCart, ShoppingCartItem). Blend creates on the fly types which look like user types. You could choose to prevent reflection (in which case, what you can specify in XAML is severely restricted) by specifyin<SPAN style="COLOR: #1f497d">g</SPAN> &lt;IsDesignTimeCreatable&gt;true&lt;/IsDesignTimeCreatable&gt; in the project file for the sample data XAML item.</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>b)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>You can specify any platform type like Brushes, ImageSource, Uri, etc.</FONT></P>
<P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="mso-fareast-font-family: Calibri"><SPAN style="mso-list: Ignore"><FONT size=3 face=Calibri>c)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 face=Calibri>You get full intellisense in Blend for typing this XAML.</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3 face=Calibri>In ShoppingCartView.xaml, we then hookup the sample data like so:</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">Grid</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt"> x</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">:</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt">Name</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">="LayoutRoot"</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt"> <SPAN style="BACKGROUND: yellow; mso-highlight: yellow"><STRONG>d</STRONG></SPAN></SPAN><STRONG><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: blue; FONT-SIZE: 10pt; mso-highlight: yellow">:</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: red; FONT-SIZE: 10pt; mso-highlight: yellow">DataContext</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: blue; FONT-SIZE: 10pt; mso-highlight: yellow">="{</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: #a31515; FONT-SIZE: 10pt; mso-highlight: yellow">d</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: blue; FONT-SIZE: 10pt; mso-highlight: yellow">:</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: #a31515; FONT-SIZE: 10pt; mso-highlight: yellow">DesignData</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: red; FONT-SIZE: 10pt; mso-highlight: yellow"> Source</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: blue; FONT-SIZE: 10pt; mso-highlight: yellow">=ShoppingCartSampleData.xaml}"</SPAN></STRONG><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt"> Background</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">="#FFB2B2B2"&gt;</SPAN></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3 face=Calibri>For WPF projects, if your XAML was using typed data templates, you need to add the following attribute to those typed data templates to get picked up automatically, if you were using the reflection based sample data types and you wanted a good design experience.</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3 face=Calibri><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">&lt;</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: #a31515; FONT-SIZE: 10pt">DataTemplate </SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt">x</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">:</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: red; FONT-SIZE: 10pt">Type</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt">="{local:Foo}"</SPAN> <SPAN style="BACKGROUND: yellow; mso-highlight: yellow"><STRONG><FONT color=#ff0000 size=2 face="Courier New">d</FONT></STRONG></SPAN><STRONG><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: blue; FONT-SIZE: 10pt; mso-highlight: yellow">:</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: red; FONT-SIZE: 10pt; mso-highlight: yellow">IsDesignTimeCreatable</SPAN><SPAN style="FONT-FAMILY: 'Courier New'; BACKGROUND: yellow; COLOR: blue; FONT-SIZE: 10pt; mso-highlight: yellow">="False"</SPAN></STRONG>&gt;</FONT></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><FONT size=3 face=Calibri>This particular sample data feature will also be supported in VS 2010. As always, please don't hesitate to ask for further clarifications, and I really value your feedback on how we could make this feature more useful for you.</FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>Blend 3 Databinding</title>
      <link>https://docs.microsoft.com/archive/blogs/unnir/blend-3-databinding</link>
      <pubDate>Thu, 18 Jun 2009 22:43:00 GMT</pubDate>
      <dc:creator><![CDATA[Unni Ravindranathan - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/unnir/2009/06/18/blend-3-databinding/</guid>
      <description><![CDATA[Here is a collection of a few of the blog posts I came across around the new databinding features in...]]></description>
      <content:encoded><![CDATA[<P>Here is a collection of a few of the blog posts I came across around the new databinding features in Blend 3. Hope you find them useful!</P>
<P><STRONG>Sample data<BR></STRONG><A href="https://blogs.msdn.com/usisvde/archive/2009/06/17/blend-3-great-feature-1-sample-data.aspx" mce_href="https://blogs.msdn.com/usisvde/archive/2009/06/17/blend-3-great-feature-1-sample-data.aspx">https://blogs.msdn.com/usisvde/archive/2009/06/17/blend-3-great-feature-1-sample-data.aspx</A>&nbsp;<BR><A href="https://silverzine.com/tutorials/how-to-create-sample-data-in-blend-3/" mce_href="https://silverzine.com/tutorials/how-to-create-sample-data-in-blend-3/">https://silverzine.com/tutorials/how-to-create-sample-data-in-blend-3/</A><BR><A href="https://www.85turns.com/2009/07/12/overview-of-sample-data-in-blend-3/">https://www.85turns.com/2009/07/12/overview-of-sample-data-in-blend-3/</A><BR><A href="https://www.cynergysystems.com/blogs/page/michaelwolf?entry=silverlight_blend_3_sample_data">https://www.cynergysystems.com/blogs/page/michaelwolf?entry=silverlight_blend_3_sample_data</A><BR><A href="https://blogs.msdn.com/unnir/archive/2009/03/18/introducing-sample-data-support-in-blend-3.aspx">https://blogs.msdn.com/unnir/archive/2009/03/18/introducing-sample-data-support-in-blend-3.aspx</A></P>
<P><STRONG>Master/Detail scenarios</STRONG><BR><A href="https://blogs.msdn.com/usisvde/archive/2009/06/18/blend-3-great-feature-2-master-details-screens.aspx" mce_href="https://blogs.msdn.com/usisvde/archive/2009/06/18/blend-3-great-feature-2-master-details-screens.aspx">https://blogs.msdn.com/usisvde/archive/2009/06/18/blend-3-great-feature-2-master-details-screens.aspx</A></P>
<P><STRONG>Element to Element binding<BR></STRONG><A href="https://blogs.msdn.com/usisvde/archive/2009/06/19/blend-3-great-feature-3-silverlight-element-binding.aspx">https://blogs.msdn.com/usisvde/archive/2009/06/19/blend-3-great-feature-3-silverlight-element-binding.aspx</A></P>
<P><STRONG>TreeView control<BR></STRONG><A href="https://geekswithblogs.net/tkokke/archive/2009/06/29/styling-a-treeview-in-silverlight-and-blend-3.aspx">https://geekswithblogs.net/tkokke/archive/2009/06/29/styling-a-treeview-in-silverlight-and-blend-3.aspx</A><BR><A href="https://shawnoster.com/Blog/Silverlight-TreeView-Connecting-Lines-And-Blend-3-Support-for-HierarchicalDataTemplates">https://shawnoster.com/Blog/Silverlight-TreeView-Connecting-Lines-And-Blend-3-Support-for-HierarchicalDataTemplates</A></P>
<P><STRONG>DataGrid control<BR></STRONG><A href="https://blogs.msdn.com/unnir/archive/2009/03/19/datagrid-support-in-blend-3.aspx">https://blogs.msdn.com/unnir/archive/2009/03/19/datagrid-support-in-blend-3.aspx</A><BR><BR><STRONG>AutoCompleteBox control<BR></STRONG><A href="https://blogs.veracitysolutions.com/how-to-get-a-silverlight-3-autocompletebox-to-show-sample-data-in-blend-3/">https://blogs.veracitysolutions.com/how-to-get-a-silverlight-3-autocompletebox-to-show-sample-data-in-blend-3/</A></P>
<P><STRONG>Under the covers </STRONG>(Advanced topics explaining the magic behind all this!)<BR><A href="https://blogs.msdn.com/unnir/archive/2009/07/12/introducing-sample-data-for-developers.aspx">https://blogs.msdn.com/unnir/archive/2009/07/12/introducing-sample-data-for-developers.aspx</A><BR><A href="https://etvorun.spaces.live.com/">https://etvorun.spaces.live.com/</A><BR><A href="https://www.robfe.com/2009/08/design-time-data-in-expression-blend-3/">https://www.robfe.com/2009/08/design-time-data-in-expression-blend-3/</A></P>]]></content:encoded>
    </item>
    <item>
      <title>TabletPC and the Blend menus</title>
      <link>https://docs.microsoft.com/archive/blogs/unnir/tabletpc-and-the-blend-menus</link>
      <pubDate>Mon, 08 Jun 2009 02:24:00 GMT</pubDate>
      <dc:creator><![CDATA[Unni Ravindranathan - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/unnir/2009/06/08/tabletpc-and-the-blend-menus/</guid>
      <description><![CDATA[If you do run into a situation where the Blend flyout menus appear on the left instead of the right...]]></description>
      <content:encoded><![CDATA[<P>If you do run into a situation where the Blend flyout menus appear on the left instead of the right as shown below, the Tablet PC Settings panel is a good place to check.</P>
<P>&nbsp;<IMG style="WIDTH: 539px; HEIGHT: 230px" src="https://drqowg.blu.livefilestore.com/y1pNsOYrqt83fNPqGANwMKZQCfwdpVNU4wNof5aTC-hJ7Va4FBoa0gfknt0A4dYoO5Mka6rKsGA3_UcZQWZRoHiSxSP3DvGLvT7/FlyoutDirection.png" width=539 height=230 mce_src="https://drqowg.blu.livefilestore.com/y1pNsOYrqt83fNPqGANwMKZQCfwdpVNU4wNof5aTC-hJ7Va4FBoa0gfknt0A4dYoO5Mka6rKsGA3_UcZQWZRoHiSxSP3DvGLvT7/FlyoutDirection.png"></P>
<P><IMG style="WIDTH: 381px; HEIGHT: 432px" src="https://drqowg.blu.livefilestore.com/y1p8XvO9CAlixbqzXUNkzUpWNXn4J08I773JMbmls_IeddX09JO7fm_1vWrKFhaBzcQySTynBM01uNMzq6U5pXEzfaAjU8bJmHh/TabletPCSettings.png" width=381 height=432 mce_src="https://drqowg.blu.livefilestore.com/y1p8XvO9CAlixbqzXUNkzUpWNXn4J08I773JMbmls_IeddX09JO7fm_1vWrKFhaBzcQySTynBM01uNMzq6U5pXEzfaAjU8bJmHh/TabletPCSettings.png"></P>]]></content:encoded>
    </item>
    <item>
      <title>Connect and Blend 3</title>
      <link>https://docs.microsoft.com/archive/blogs/unnir/connect-and-blend-3</link>
      <pubDate>Mon, 25 May 2009 23:22:00 GMT</pubDate>
      <dc:creator><![CDATA[Unni Ravindranathan - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/unnir/2009/05/25/connect-and-blend-3/</guid>
      <description><![CDATA[While Blend 3 has a number of stellar features that I am sure everyone reading this blog has heard...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt">While Blend 3 has a number of stellar features that I am sure everyone reading this blog has heard about (buzz words include SketchFlow, behaviors, sample data support, Illustrator and Photoshop import, TFS support, and many more), we really devoted a significant amount of time to address issues that you reported via Connect, that we hope will help you be more productive inside Blend. Here is a compilation of my favorite top-10 feedback items we addressed (in random order). Thank you very much to all you Connect contributors, and we really hope to hear more from you.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: 115%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Segoe UI'"><SPAN style="mso-list: Ignore">a)<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt"><A href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=423346" mce_href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=423346">Numeric editors for Gradient Stops</A><o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt">Designers like to precisely control the positioning of gradient stops. Blend 3 adds this ability.</SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt"><o:p><IMG style="WIDTH: 329px; HEIGHT: 301px" src="https://drqowg.blu.livefilestore.com/y1pvmRggYyKk_qoCa5tqpPLwV-6-R7J4sjAjsf6eImZbQrrKyuByyETW5onbS4QXmW_JTIWfxeNUGwSWskqdYoQIw/gradientstopeditor.png" width=329 height=301 mce_src="https://drqowg.blu.livefilestore.com/y1pvmRggYyKk_qoCa5tqpPLwV-6-R7J4sjAjsf6eImZbQrrKyuByyETW5onbS4QXmW_JTIWfxeNUGwSWskqdYoQIw/gradientstopeditor.png"></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt; mso-no-proof: yes"><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype></SPAN><SPAN style="FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt"><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: 115%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Segoe UI'"><SPAN style="mso-list: Ignore">b)<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt"><A href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=417321" mce_href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=417321">Better handling of Layout properties in common operations like copy/paste</A><o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt">With Blend 3, we have made a good, sincere attempt to streamline the properties that we set in common operations like copy/paste and double-click to insert. We also try to generate a clean as XAML as possible.<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: 115%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Segoe UI'"><SPAN style="mso-list: Ignore">c)<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt">Consolidate the style and template editing menus<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt">I could not find the Connect bug link for this one, sorry! While the concept of Styles and Templates offers enormous potential, it also make it challenging for a tool like Blend to offer access to them, and at the same time make us approachable to users who don’t care about the separation. While we did a pretty good job of trying to abstract away the concepts of styles and templates, and while a lot more can be done, Blend 3 makes it possible to access all styles in the context menu. No need to go the Object menu to edit the ItemContainerStyle of a ListBox.<o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt; mso-no-proof: yes"></SPAN><SPAN style="FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt"><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: 115%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Segoe UI'"><SPAN style="mso-list: Ignore">d)<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt"><A href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=417321" mce_href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=417321">AlternateContentProperty</A><o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt">You can read about this in a previous post of mine <A href="https://blogs.msdn.com/unnir/archive/2009/03/28/alternatecontentproperty-attribute.aspx" mce_href="https://blogs.msdn.com/unnir/archive/2009/03/28/alternatecontentproperty-attribute.aspx">here</A>.<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: 115%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Segoe UI'"><SPAN style="mso-list: Ignore">e)<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt"><A href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=378555&amp;wa=wsignin1.0" mce_href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=378555&amp;wa=wsignin1.0">Expand/Collapse state of projects across solutions</A><o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt">Each time you close and reopen a solution that contains multiple projects, we now remember the expansion states of each project in the solution. We also remember the set of documents you had open inside Blend so you can restart working where you left off immediately.<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: 115%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Segoe UI'"><SPAN style="mso-list: Ignore">f)<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt"><A href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=421174&amp;wa=wsignin1.0" mce_href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=421174&amp;wa=wsignin1.0">Preserving XAML readability when trying to copy templates in WPF</A><o:p></o:p></SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt">This is a WPF only improvement we made to Blend 3. In WPF, Blend allows you to edit copies of controls’ templates by reverse engineering the XAML from the BAMLized resources. While this is great to have, it is also essentially lossy operation. As an example, any static resource references like Brushes get inlined (and consequently, the XAML becomes a little less user-friendly). Blend now allows custom control vendors to specify the original XAML file that should be used at design-time for template editing in the design-time assemblies (another post is required to show how you could take advantage of this if you were in the business of writing complex WPF controls and wanted to better enable designers). We also correctly copy the templates from the original Generic.xaml in many more cases when the original source is available.</SPAN></P>
<P style="MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt"><o:p><IMG style="WIDTH: 557px; HEIGHT: 438px" src="https://drqowg.blu.livefilestore.com/y1pV-mKJNQ-YJWT3JCG1HqVfEwQ5kA6ko31O24gEKWg2pYz-7V_L-ZD7aGLpxI6izBh20S30BBEQzViIEfih-NB_g/consolidatedtemplatemenu.png" width=557 height=438 mce_src="https://drqowg.blu.livefilestore.com/y1pV-mKJNQ-YJWT3JCG1HqVfEwQ5kA6ko31O24gEKWg2pYz-7V_L-ZD7aGLpxI6izBh20S30BBEQzViIEfih-NB_g/consolidatedtemplatemenu.png"></o:p></SPAN></P>
<P style="LINE-HEIGHT: 115%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Segoe UI'"><SPAN style="mso-list: Ignore">g)<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt"><A href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=379960" mce_href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=379960">Typing in the split view XAML editor steals focus</A><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: 115%; MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt">There were many cases where the design surface would steal focus from the XAML editor that would make it very annoying to type in the XAML editor. All of those should now be fixed, and along with support for intellisense in the XAML editor and a highly performant, robust-to-errors/exceptions XAML parser, typing in the XAML editor should be a really enjoyable experience for you (though we also work pretty hard to keep your XAML typing skills usage to a bare minimum</SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Wingdings; FONT-SIZE: 10pt; mso-bidi-font-family: 'Segoe UI'; mso-ascii-font-family: 'Segoe UI'; mso-hansi-font-family: 'Segoe UI'; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">J</SPAN></SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt">).<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: 115%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Segoe UI'"><SPAN style="mso-list: Ignore">h)<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt"><A href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=432286" mce_href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=432286">Arrange-by (z-index) is not preserved across sessions</A><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: 115%; MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt">The order in which elements appear in XAML does not always play well with the cognitive understanding of who like to see elements that appears higher in z-order to appear higher in the object tree. While Blend 2 had the ability to switch the visualization order in the object tree, we made it hard for users who would have to set this <I style="mso-bidi-font-style: normal">every</I> time they opened a solution. Not anymore!<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: 115%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Segoe UI'"><SPAN style="mso-list: Ignore">i)<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt"><A href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=376109" mce_href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=376109">Keyboard shortcuts fine tuning</A><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: 115%; MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt">This is a pretty hard problem to solve without free-form keyboard customizability and presets for shortcuts (a feature that is missing from Blend 3). But we made a pretty sincere effort here. For example, you can now customize the mouse zoom/scroll behavior for the design surface to your liking.<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: 115%; TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraph><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt; mso-fareast-font-family: 'Segoe UI'"><SPAN style="mso-list: Ignore">j)<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt">And finally… <A href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=448817" mce_href="https://connect.microsoft.com/Expression/feedback/ViewFeedback.aspx?FeedbackID=448817">Blend – so bad</A><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: 115%; MARGIN: 0in 0in 10pt" class=MsoNormal><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt">We totally fixed this! Hope you enjoy using Blend 3 </SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Wingdings; FONT-SIZE: 10pt; mso-bidi-font-family: 'Segoe UI'; mso-ascii-font-family: 'Segoe UI'; mso-hansi-font-family: 'Segoe UI'; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">J</SPAN></SPAN><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Segoe UI','sans-serif'; FONT-SIZE: 10pt">.</SPAN></P>]]></content:encoded>
    </item>
    <item>
      <title>The Blend 3 Asset Library</title>
      <link>https://docs.microsoft.com/archive/blogs/unnir/the-blend-3-asset-library</link>
      <pubDate>Fri, 22 May 2009 22:30:00 GMT</pubDate>
      <dc:creator><![CDATA[Unni Ravindranathan - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/unnir/2009/05/22/the-blend-3-asset-library/</guid>
      <description><![CDATA[For Blend 3, we have completely re-designed the Asset Library.&nbsp; 

Here are some of the...]]></description>
      <content:encoded><![CDATA[<P>For Blend 3, we have completely re-designed the Asset Library.&nbsp; </P>
<P><IMG style="WIDTH: 729px; HEIGHT: 397px" src="https://drqowg.blu.livefilestore.com/y1pXO07RJfqLuM2CBZA2gZt3AMgOipsUKO3fEiyrN8h8aoNx3OiPFGQe5cW2RvpUspkRZxSMNXqC1giJpDGTlfMXQ/assetlibrary.png" width=901 height=520 mce_src="https://drqowg.blu.livefilestore.com/y1pXO07RJfqLuM2CBZA2gZt3AMgOipsUKO3fEiyrN8h8aoNx3OiPFGQe5cW2RvpUspkRZxSMNXqC1giJpDGTlfMXQ/assetlibrary.png"></P>
<P>Here are some of the highlights:</P>
<P>a) Categorization for various assets makes discoverability easier.<BR>b) Searchability allows for quick&nbsp;location of an&nbsp;asset across&nbsp;categories like Controls, Effects and Behaviors.<BR>b) Freely dockable anywhere in the UI. We also have left the popup mode unchanged for quick one-time access to assets.<BR>c) Extensible - you can register your own assets that make it easy for inclusion into the projects on an on-demand basis. Adding an asset like a Control or a Behavior will add all necessary references required for the functioning of the project automatically.<BR>d) List and Grid modes for the display of assets.</P>
<P>Registering your own library (or sets of libraries)&nbsp;in the asset tool is very simple. All you have to do is to setup a registry key that points to a folder containing the libraries. As an example, the Silverlight SDK registers itself into the Blend asset tool using the following key/value pair on a 64-bit machine:<BR>Key: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Expression\Blend\3.0\Toolbox\Silverlight\v3.0\Silverlight SDK Client Libraries<BR>Value: c:\Program Files (x86)\Microsoft SDKs\Silverlight\v3.0\Libraries\Client\</P>
<P>For a WPF example, the following is the way the WPF ToolKit registers itself on a 32-bit machine:<BR>Key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Expression\Blend\3.0\Toolbox\WPF\v3.0\WPFToolkit<BR>Value: C:\Program Files\WPF Toolkit\v3.5.40320.1</P>
<P>There are a few things you can customize around the display of assets:</P>
<P><STRONG>The Icon</STRONG>: For&nbsp;supplying a custom icon, all you need to do is to add an image to the control&nbsp;library (preferrably its design-time library that helps keep the size of the library small) that uses the namespace qualified name of the control for its name. For example, say you had a custom control Foo. The icon would be then called FoosNamespace.Foo.png. Few things to keep in mind: Use EmbeddedResource as the build item for the Image. Blend's asset library only supports PNGs. If you wanted a 24x24 and 12x12 version of icons (since we use these two standard sizes in various places of our UI), all you have to do is to name the PNGs as follows: FoosNamespace.Foo.SmallIcon.PNG, and FoosNamespace.Foo.LargeIcon.PNG. The SmallIcon/LargeIcon part don't actually matter - you can pick a string of your choice, and we will dynamically determine and pick up the appropriate icon for display.</P>
<P><STRONG>Description</STRONG>: You can use the DescriptionAttribute to change the string that is displayed as a tooltip for the asset.</P>
<P><STRONG>Asset Library availability</STRONG>: If you wanted to prevent a particular asset from being visble in the Asset Library, you could use the ToolBoxBrowsable attribute as a part of the metadata specification for that asset&nbsp;in the design-time library.</P>
<P><STRONG>Location in the category hierarchy</STRONG>: Again done via a newly introduced attribute (ToolBoxCategoryAttribute) that you can supply via a design-time library.</P>]]></content:encoded>
    </item>
    <item>
      <title>Marching towards the Blend 3 Beta</title>
      <link>https://docs.microsoft.com/archive/blogs/unnir/marching-towards-the-blend-3-beta</link>
      <pubDate>Fri, 22 May 2009 20:21:00 GMT</pubDate>
      <dc:creator><![CDATA[Unni Ravindranathan - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/unnir/2009/05/22/marching-towards-the-blend-3-beta/</guid>
      <description><![CDATA[The last few weeks (or months)&nbsp;have been really&nbsp;hectic! We finally finished all the...]]></description>
      <content:encoded><![CDATA[<P>The last few weeks (or months)&nbsp;have been really&nbsp;hectic! We finally finished all the features that we wanted to add to Blend 3, and are now actively fixing all the feedback (read bugs and crashes :))&nbsp;that you have been reporting to us, as well as making performance tweaks to the product to make things work really well end-to-end. Please keep the feedback coming - we really appreciate it.</P>
<P>Here is a (random, off the top of my head) sneak peak into some of the new features we are adding to Blend 3 in the upcoming release, since the last Blend 3 Preview:</P>
<UL>
<LI><STRONG>A completely re-designed Asset Library: </STRONG>This is by far the biggest addition to Blend, and I am sure you will love it - after all, its dockable! More information on this later.</LI>
<LI>The sample data system now allows you to specify custom objects (like Brushes and your business objects), that just completely opens up the Blend sample data system for developers to better enable designers. I will post a sample of this shortly. In addition to this, we also added support for TreeView and binding to recursive collections.</LI>
<LI><STRONG>Project pane search </STRONG>- you&nbsp;can easily find the files in&nbsp;your project, similar to what you would do for properties.</LI>
<LI><STRONG>Find in Files&nbsp;- </STRONG>this allows you to search for information across files.</LI>
<LI>Better paste functionality - we now allow you to <STRONG>paste images from the clipboard</STRONG>.</LI>
<LI>You no longer need to build your projects to preview changes to UserControls.</LI>
<LI><STRONG>Marquee selection of keyframes</STRONG> that allows you to select multiple keyframes easily in the animation window.</LI>
<LI>A lot more functionality&nbsp;to make&nbsp;<STRONG>Behaviors</STRONG> even more easy to create and use like an easier way to pick elements, re-use the element, storyboard and state pickers, etc. This is addition to newer set of Behaviors and Actions that will be available out-of-the-box.</LI>
<LI>State editing experience - we now allow you to view <STRONG>previews of transitions</STRONG> on the design surface as you switch between states.</LI>
<LI><STRONG>FluidLayout </STRONG>is a new feature that we a adding that allows you to design animated, dynamic layout experiences.</LI>
<LI>Support for<STRONG> out-of-browser Silverlight applications.</STRONG></LI>
<LI>A much improved, highly performant, <STRONG>XAML editing experience</STRONG> that is robust to the typing experience (i.e. a&nbsp;design surface does not throw exceptions or blanks out as you type in the XAML, and one that allows you to work with an element even when an exception is thrown so you could correct your errors in the UI).</LI>
<LI>A Blend SDK that allows for Blend created projects to be portable between designers and developers without actually requiring a Blend install.</LI></UL>
<P>In addition, we also spent a significant amount of time polishing up the Blend UI. Just simple things that required attention to detail and will make your overall experience with the product enjoyable - hope you will like them.</P>
<P>Watch out <A href="https://electricbeach.org/" mce_href="https://electricbeach.org/">Christian's blog</A>&nbsp;for the SketchFlow additions - I think&nbsp;SketchFlow is clearly the crown jewel of Blend 3.&nbsp;We also spent a significant amount of time polishing up the Blend UI, and hope you will like the improvments.</P>
<P>Really looking forward to June and your feedback!&nbsp;</P>]]></content:encoded>
    </item>
  </channel>
</rss>