, , .
Blend SDK System.Windows.Interactivity
Microsoft.Expressions.Interactions
.
, DataTrigger
. , IntelliSense XAML, .
, , Framework .
: http://connect.microsoft.com/VisualStudio/feedback/details/648819/visual-studio-2010-silverlight-designer-crash
SharpDevelops ILSpy . → . . . Expression.Interactions .
In AssemblyInfo.cs
you can do the trick.
In Microsoft.Expression.Interactions
:
[assembly: XmlnsPrefix("http://yourdomain.com/interactions", "i")]
[assembly: XmlnsDefinition("http://yourdomain.com/interactions", "Microsoft.Expression.Interactivity.Core")]
[assembly: XmlnsDefinition("http://yourdomain.com/interactions", "Microsoft.Expression.Interactivity.Input")]
[assembly: XmlnsDefinition("http://yourdomain.com/interactions", "Microsoft.Expression.Interactivity.Layout")]
[assembly: XmlnsDefinition("http://yourdomain.com/interactions", "Microsoft.Expression.Interactivity.Media")]
in System.Windows.Interactivity
:
[assembly: XmlnsPrefix("http://yourdomain.com/interactions", "i")]
[assembly: XmlnsDefinition("http://yourdomain.com/interactions", "System.Windows.Interactivity")]
Now place a link to new projects in your assembly or create assemblies and copy their version to the folder with your libraries and directly link to the built-in versions.
In XAML, add a new namespace to your rootelement as a page / window:
<RootElement xmlns:i="http://yourdomain.com/interactions">
<i:Interaction.Triggers> ... </i:Interaction.Triggers>
</RootElement>
It works like a charm. You can use both interaction functionality and expressions combined into one xmlns, and, of course, there is no constructor exception, and IntelliSense will no longer break.