[英]WPF adding a third party ResourceDictionary to App.xaml?
这可能是一个愚蠢的问题,但我找不到答案。
我刚刚开始使用WPF,并且正在尝试向我的项目添加ResourceDictionary。
这一个在这里:
https://monotone.codeplex.com/
因此,我下载了zip文件,并将其解压缩为:
MyProjectDir/MonoTone
我已将以下内容添加到我的App.xaml
<Application x:Class="TestWPF.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TestWPF"
xmlns:xcad="http://schemas.xceed.com/wpf/xaml/avalondock"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Monotone/Monotone.Colors.xaml" />
<ResourceDictionary Source="Monotone/Monotone.Brushes.xaml" />
<ResourceDictionary Source="Monotone/Monotone.MahApps.xaml" />
<ResourceDictionary Source="Monotone/Monotone.xaml" />
<ResourceDictionary Source="Monotone/Monotone.ExtendedWPFToolkit.xaml" />
<ResourceDictionary Source="Monotone/Monotone.ColorBox.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
如这里:
https://monotone.codeplex.com/wikipage?title=Installing%20Monotone&referringTitle=Documentation
现在,Intelsense正在突出显示xaml路径,并且找不到文件。
我已经添加了对dll的引用。 我想念什么?
谢谢。
明确回答您的问题:Visual Studio在抱怨,因为您需要将Monotone文件(来自发行版zip)添加到项目中名为“ Monotone”的文件夹下。 Janis S的答案已经说明了这一点。
不幸的是,Monotone项目包含对其他项目的一些依赖...特别是,您会注意到它引用了ColorBox控件,该控件可以在CodePlex上找到,并且还依赖于某些Xceed程序集。 没有这些内容,您的项目将无法构建。
引用外部依赖项的一些示例是:
xmlns:xtk="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:nc="http://schemas.ncore.com/wpf/xaml/colorbox"
xmlns:conv="clr-namespace:Xceed.Wpf.Toolkit.Converters;assembly=Xceed.Wpf.Toolkit"
xmlns:Behaviours="clr-namespace:MahApps.Metro.Behaviours"
xmlns:mm="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:mmm="http://metro.mahapps.com/winfx/xaml/shared"
此时,您有三个选择
由于CodePlex即将关闭并且Monotone似乎没有得到维护,因此选项3在此时可能是最好的选择。 快速的Google搜索会产生一些免费的WPF黑暗主题,这些主题仍然可以使用。
如果您真的想使用Monotone,请转到他们的下载页面并获取示例应用程序。 所有缺少的DLL都包含在该下载中(您将需要在项目中包含这些DLL, 并将其添加为引用 )。
我参加聚会可能很晚,但要澄清一下:
我是Monotone的创建者(Monotone(这是我用于已淘汰的IDE所使用的主题)。 我不介意您为应用程序选择另一个/更好的深色主题,在这一点上它已经很老了。
Monotone现在“维护”在GitHub上。 好吧,由于我不再使用C#,这时或多或少有些陈旧。 但是,如果您(或其他任何人)对此有特定的问题,请随时在GitHub上提交问题或解决该问题的请求请求。
您只需为默认WPF控件将Monotone.Colors.xaml
, Monotone.Brushes.xaml
和Monotone.xaml
的XAML文件添加到ResourceDictionary.MergedDictionaries
。 按此顺序包括。 如果我没记错的话,必须将文件设置为EmbeddedResource
。 而已。
仅当您使用(并希望为其设置主题)ExtendedWPFToolkit控件时,才需要Monotone.ExtendedWPFToolkit.xaml
。 Monotone.MahApps.xaml
和Monotone.ColorBox.xaml
。 因此,这些是可选的。 它保存在单独的文件中,以避免依赖于您可能不使用的库
您不需要使用DLL来设置标准WPF控件的样式
由于CodePlex的关闭,Wiki页消失了。 我可能会深入研究代码,然后在GitHub上重新创建代码(甚至最好将其添加到存储库本身中),以获取有用的文档。
如前所述,SampleApplication包含一个工作示例,您可以将其用作模板和/或了解其工作方式
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.