我目前正在将我的项目转换为Visual Studio的新SDK格式。不幸的是我无法让设计师工作。过去,我在每个项目中添加了一个app.xaml,其中包含与设计时间相关的所有资源。这会导致一些警告,但是visual studio给了我我所需要的:XAML设计器中的语法完成
切换到SDK格式后,出现错误:\Microsoft.WinFX.targets(225,9): error MC1002: Library project file cannot specify ApplicationDefinition element.
因此,我删除了app.xaml文件,但是现在我没有语法完成功能,并且设计器不再显示我的控件。
我尝试过的是添加资源文件并设置
<Page Include="Properties\DesignTimeResources.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
<ContainsDesignTimeResources>true</ContainsDesignTimeResources>
</Page>
csproj文件中的。但是,此技巧不再起作用,因为无法再在csproj文件中定义页面。
Microsoft认为这应该如何工作?是否可以在不编辑我的1000个xaml文件中的每个文件的情况下,将设计时间资源添加到我的项目中?
我真的想避免将此添加到每个xaml文件中:
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MyAssembly;component/Resources/ResourceBundle.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
答案 0 :(得分:0)
这可以解决问题:
<ItemGroup>
<Page Update="Properties\DesignTimeResources.xaml" Condition="'$(DesignTime)'=='true' OR ('$(SolutionPath)'!='' AND Exists('$(SolutionPath)') AND '$(BuildingInsideVisualStudio)'!='true' AND '$(BuildingInsideExpressionBlend)'!='true')">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
<ContainsDesignTimeResources>true</ContainsDesignTimeResources>
</Page>
</ItemGroup>
将其添加到项目文件中,并且我的用户控件在设计时再次加载。.不幸的是,Intellisense仍然无法正常工作。.