ExpressionBlend exception when UserControl contain

2019-08-27 21:58发布

I can edit this UserControl just fine in visual studio but I get this strange exception in expression blend. Does anybody know what should I look for?

enter image description here

UPDATE

I wasn't able to figure how to debug/attach. I did everything as instructed by Mike but no breakpoints got hit. I did more investigation and found that most likely my issue related to themes/generic.xaml

My visual studio solution has project named Infrastructure.dll. Inside that project I have folder themes and inside I have file generic.xaml. Generic.xaml set to compile as resource. My control class lives in a same project.

I have another project named 'Module.dll' and that project references Infrastructure.dll

  1. When I open view with my control (view is from Infrastructure.dll) it works in Visual Studio but gives this error in Blend.
  2. I can drag/drop control in Blend and it would give same error. I tried to remove line where I apply template to control (template in generic.xaml) and it works.
  3. Template is good, I created it using Blend and copied to generic.xaml myself.
  4. When I create view INSIDE Infrastructure.dll and drop my control on that view - it works.

So, my conclusion is that Blend doesn't see template inside generic.xaml that lives in referenced project. How do I fix this?

2条回答
萌系小妹纸
2楼-- · 2019-08-27 22:07

Open your project in Blend (but do not yet open the problem file). Also open your solution in Visual Studio (order of opening is not important). From Visual Studio, select Debug -> Attach to process... and select Blend.exe. Make sure you're breaking on all exceptions. Once the debugger has finished attaching and loading everything, open the problem file in Blend. The debugger should (hopefully -- hard to tell from the exception details) stop at the problem area in your code.

查看更多
Evening l夕情丶
3楼-- · 2019-08-27 22:25

Issue was definitely related to Blend's inability to read/locate generic.xaml Visual studio doesn't have this issue btw. I found workaround for now - will gladly accept another answer if I can avoid doing that..

After I add resource reference to view - everything works in Blend. This means I have to add this XAML to all my views..

<UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/Infrastructure.SL;component/Themes/generic.xaml"/>
            </ResourceDictionary.MergedDictionaries> 
查看更多
登录 后发表回答