我有一个库,CommonLibraryWpfThemes,里面有几个Resource Dictionary XAML文件.My Themes/Generic.xml文件包含一个ResourceDictionary.MergedDictionaries声明,它将所有其他文件合并在一起.
Generic.xaml
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/BrushDictionary.xaml" />
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/TextBlockDictionary.xaml" />
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/LabelDictionary.xaml" />
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/ButtonDictionary.xaml" />
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/ResourceDictionaries/WindowDictionary.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
在我的应用程序项目中,我引用了CommonLibraryWpfThemes,并在我的App.xaml文件中显式引用了Generic.xml.
App.xaml - 失败
<Application
x:Class="MyApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Application.Resources>
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/Themes/Generic.xaml" />
</Application.Resources>
</Application>
Run Code Online (Sandbox Code Playgroud)
这不起作用.运行我的应用程序时出现以下错误:
System.Windows.Markup.XamlParseException occurred
Message="Cannot find resource named '{_fadedOrangeBrush}'. Resource names are case sensitive. Error at object 'System.Windows.Setter' in markup file 'CommonLibraryWpfThemes;component/ResourceDictionaries/WindowDictionary.xaml' Line 18 Position 13."
Source="PresentationFramework"
LineNumber=18
LinePosition=13
Run Code Online (Sandbox Code Playgroud)
如果我直接将Generic.xaml的内容放入App.xaml,一切正常:
App.xaml - SUCCEEDS
<Application
x:Class="MyApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary …Run Code Online (Sandbox Code Playgroud) 我在App.xaml主程序集中有一个合并的资源字典,它结合了来自不同程序集的各种资源字典:Common和PresentationLayer.
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Common;component/Themes/Button.xaml"/>
<ResourceDictionary Source="/PresentationLayer;component/DataTemplates/AppointmentsDataTemplates.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)
在运行时,资源字典中的样式将正确应用于控件.但是,在设计时不会应用样式,Visual Studio 2012会不断出现以下错误:
An error occurred while finding the resource dictionary "/Common;component/Themes/Button.xaml".
Run Code Online (Sandbox Code Playgroud)
并警告:
The resource "BannerButton" could not be resolved.
Run Code Online (Sandbox Code Playgroud)
我遇到过这篇文章,但问题仍然存在,尽管Build Action设置为Resource.此外,我在Visual Studio 2010或Expression Blend 4下运行时没有遇到此问题.主程序集肯定包含对Common程序集的引用,我没有更改Pack URI.
我刚刚获得VS2013并打开了我的VS2010项目.但是现在我看不到任何xaml设计.问题是没有应用样式:
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Themes/Colors.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
给我错误:
错误1查找资源字典"/Themes/Colors.xaml"时发生错误.
这在VS2010中工作正常.构建选项设置为Page.所有目标框架都设置为.NET 4.
目录结构是这样的:
Host\Themes\Colors.xaml
Plugins\EqPlugin\Source\ProblemFile.xaml
Run Code Online (Sandbox Code Playgroud)
主题在VEParameters项目中定义并声明:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:EQPlugin;assembly=VEParameterTool">
Run Code Online (Sandbox Code Playgroud)
发生错误的文件位于EqPlugIn目录中并声明:
<UserControl x:Class="EQPlugin.EQControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:src="clr-namespace:VEParameterTool;assembly=VEParameterTool"
xmlns:l="clr-namespace:EQPlugin"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:oxy="http://oxyplot.codeplex.com"
mc:Ignorable="d">
Run Code Online (Sandbox Code Playgroud)
我已经尝试将路径更改为相对路径,但这不起作用,我已删除并重新添加程序集,我已重新启动等,所有项目都是为同一框架构建的.我不知道还有什么可以尝试的.
我在Visual Studio中创建了一个Windows移动应用程序.我想将这个项目模板化,以便可以将其作为模板而不是项目打开.
这在Visual Studio中可行吗?我读到有一种称为"VSX(Visual Studio扩展)"的东西可以达到这个目的.我在我的系统中安装了Visual Studio Ultimate,并且正在尝试安装VS2010 SDK.但它没有得到安装告诉我没有我显然做的MS Visual Studio 2010.
我正朝着正确的方向前进吗?如果不是什么是正确的方法去?
球队,
我在Visual Studio 2013中有一个简单的wpf项目.结构如下所示.错误所说的全部内容如标题"查找资源字典时发生错误"所示.我从网上尝试了许多建议并且没有耐心.每件事似乎都没问题.任何有经验的人都可以提出一些建议.提前致谢.
