我也遇到了這個問題,最終以不尋常但成功的方式解決了這個問題。
我們使用的是Blend SDK的System.Windows.Interactivity
和Microsoft.Expressions.Interactions
。
一切工作正常,除非設計器崩潰時使用具有相同的異常繼承DataTrigger
。這不會是一團糟,但是這個異常也會在整個XAML文檔中打破IntelliSense,這是不可接受的。
由於這是一個可反覆報告和報告錯誤,我決定使用反彙編來解決問題,因爲我們需要擴展到交互框架。
請參見:http://connect.microsoft.com/VisualStudio/feedback/details/648819/visual-studio-2010-silverlight-designer-crash
只是得到SharpDevelops ILSpy的版本,並在其中打開兩個組件。從列表中選擇組件並轉到文件 - >保存。這將拆卸整個項目。將它們集成在一個空白的解決方案中,並更改程序集名稱。將Expression.Interactions庫中的參考重新構建到新的反彙編版本。
在AssemblyInfo.cs
你可以做一個竅門。
在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")]
在System.Windows.Interactivity
:
[assembly: XmlnsPrefix("http://yourdomain.com/interactions", "i")]
[assembly: XmlnsDefinition("http://yourdomain.com/interactions", "System.Windows.Interactivity")]
現在把新項目的引用在彙編,或構建組件和版本它們複製到您的庫文件夾並直接引用內置版本。
在XAML中添加新的命名空間到你的rootElement的像頁/窗口:
<RootElement xmlns:i="http://yourdomain.com/interactions">
<!-- your xaml code -->
<i:Interaction.Triggers> ... </i:Interaction.Triggers>
</RootElement>
它的工作原理就像一個魅力。您可以將交互和表達式功能組合到一個xmlns中,當然,設計師的異常消失了,IntelliSense不會再中斷。
你試過重新引用程序集嗎?此外,如果您使用外部DLL以及示例代碼,請確保使用示例中使用的DLL的相同版本 – Majd