在大多数情况下,您只需将Visual Studio为其设置的任何内容作为默认设置...我指的是在解决方案资源管理器中选择的每个文件的BuildAction属性.有很多选择,很难知道他们每个人会做什么.
我已将所有应用程序的ResourceDictionaries放入一个单独的程序集中,并将它们合并到一个ResourceDictionary中,我希望将其作为资源包含在我的应用程序中:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="InputStyles.xaml"/>
<ResourceDictionary Source="DataGridStyles.xaml"/>
<ResourceDictionary Source="ComboboxStyles.xaml"/>
<ResourceDictionary Source="CheckboxStyles.xaml"/>
<ResourceDictionary Source="TabControlStyles.xaml"/>
<ResourceDictionary Source="ButtonStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)
声明资源:
<Window.Resources>
<ResourceDictionary Source="pack://application:,,,/StyleAssembly;component/Styles.xaml"/>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
在VS中查看设计器所有控件都显示文件中的样式,但是当我尝试启动应用程序时,我收到以下错误:
"找不到资源'inputstyles.xaml'."
所有文件的构建操作都设置为"页面",两个项目的构建都成功.我究竟做错了什么?
TLDR;
屏幕ResourceDictionary在运行时正确地引用VS2015样式的外部文件,但不是在设计时.是什么赋予了?
在工作中,我们有一个WinForms产品,其中包含许多 WinForms屏幕,一个开发人员主动添加新的屏幕,以及一些WPF屏幕,我添加了新的.在现有的WPF屏幕中注意到很多重复的代码/样式,我创建了一个单独的项目来容纳这个 - 由所有现有/未来的WPF屏幕引用.
项目: WpfHelper
WpfHelper.dll 部署到 ...\Trunk\Project\Externals...\Trunk\Utilities\WpfHelper\WpfHelper\Resources\GlobalResources.xaml
我已...\Trunk\Project\Externals\WpfHelper.dll在六个项目中引用,将以下代码添加到每个资源文件中:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/WpfHelper;Component/Resources/GlobalResources.xaml" />
</ResourceDictionary.MergedDictionaries>
Run Code Online (Sandbox Code Playgroud)
所有屏幕都位于...\Trunk\Project\Plugins.
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
? ? Resource Works? ? Platform Target ? Target Framework ? Reference File Path ?
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
? Project1 ? Succeeded ? Any CPU ? .NET 4.6 ? ...\Project1\Project1\Resources\Resources.xaml ?
? Project2 ? Succeeded ? x86 ? .NET 4.6 ? ...\Project2\Project2\Resources\Resources.xaml ?
? Project3 ? Succeeded ? Any …Run Code Online (Sandbox Code Playgroud)