Chr*_*yks 8 wpf xaml visual-studio-2012
我最近升级到VS 2012,因为我需要开始使用.net 4.5,但这不仅仅是重点.我的问题如下:
我ResourceDictionary在我的主要项目中有一个叫做AppStyles.xaml,并且App.Xaml我有以下内容:
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="AppStyles.xaml"/>
<ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
在我ResourceDictionary有一个样式,然后我可以通过设置将此样式应用于我的任何项目中的任何按钮Style={StaticResource MyButton}.
升级到VS 2012之后,我注意到我在标题中出现了很多错误,有时它会阻止我进行调试,有时却没有!
有没有不同的方式我应该这样做或VS 2012中有问题?
Won*_*onk 12
WPF无法解析您尝试合并的资源字典.创建合并字典时,WPF遵循一组规则来尝试解析URI.在您的情况下,URI是不明确的,因此WPF无法可靠地解析它.
将SourceURI 更改为App.xaml绝对包URI.例如,如果调用了项目MyProject(即:"MyProject"是短组件名称),那么您应该将Sourcein 更改App.xaml为:
<ResourceDictionary
Source="/MyProject;component/AppStyles.xaml"/>
Run Code Online (Sandbox Code Playgroud)
这假定AppStyles.xaml是在根的MyProject.您可以选择指定签名程序集的权限,程序集版本和公钥信息.但是,使用短组件名称(在上面的示例中为MyProject)应该是安全的.
有关WPF中包URI的更多详细信息,请参阅MSDN上的此页面:http://msdn.microsoft.com/en-us/library/aa970069(v = vs.110).aspx
我在VS2010中也经常遇到这个问题.如果我制作"清洁解决方案"和"重建解决方案",有时问题就会解决.如果这不起作用我通常重启VS2010.
我还将Style x:Key重命名为其他东西,问题就消失了.但我发现这个解决方案并不完美......
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- Load Infrastructure's Resource Dictionaries -->
<ResourceDictionary Source="/MyProject.Modules.Infrastructure;component/ResourceDictionaries/ResourceLibrary.xaml" />
</ResourceDictionary.MergedDictionaries>
<!-- Workaround for ResourceDictionary loading bug/optimization -->
<Style TargetType="{x:Type Rectangle}" />
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
在我的代码示例中引用有关此变通方法的问题:引用包含合并字典的资源字典时出现问题
| 归档时间: |
|
| 查看次数: |
24967 次 |
| 最近记录: |