这是我当前的项目架构:
Program.Startup.csproj
--- Styles
------ MyStyles.xaml
--- App.xaml
Program.View.csproj
--- MainWindow.xaml
--- SettingsView.xaml
--- ...
我正在使用我的app.xaml为所有控件加载样式:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles/MyStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
每当我在主窗口中使用一种样式时,在设计期间都找不到该样式。 开发视图/窗口时,有没有办法使自动完成工作停止1000个“未找到的错误”?
答案 0 :(得分:-1)
窗口是内容控件。
因此,您可以根据需要切换内容。
将主窗口放在与入口点完全不同的项目中并没有多大意义。
如果要在其中使用foo,则可以新建foo的实例,并使MainWindow.Content = myFoo。
要代替酒吧...。您可以将其内容设置为bar的实例。
无论如何,无论您的主要解决方案是什么,都可以添加其他项目。
您可以添加现有项目,以便您的代码在同一解决方案中都可见。
因此,您的意见将是
然后在app.xaml中,您可以合并入口点解决方案中的资源词典,并使用包符号来合并其他项目中的资源词典。
这是一个实时应用程序的副本。xaml会这样做。
<Application x:Class="ScenarioEditor.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="Application_Startup"
>
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/UILib;component/Resources/Geometries.xaml"/>
<ResourceDictionary Source="pack://application:,,,/UILib;component/Resources/ControlTemplates.xaml"/>
<ResourceDictionary Source="pack://application:,,,/UILib;component/Resources/FontResources.xaml"/>
<ResourceDictionary Source="/Resources/ScenarioEditorResources.xaml"/>
<ResourceDictionary Source="pack://application:,,,/UILib;component/Resources/UILibResources.xaml"/>
<ResourceDictionary Source="pack://application:,,,/UILib;component/Resources/HypsoColoursRD.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
我的解决方案是Scenario Editor,而ScenarioEditorResources是,其中引用了其他几个项目,并且它们的资源字典也已合并。 我通过在Visual Studio中打开方案编辑器解决方案来工作。
当我编辑其中一个引用项目中的内容时,UILib会合并所有资源。
您也可以添加设计资源字典,但是看起来它可以从exe加载到dll中。
不是常规的工作方式。