WPF很棒,因为我应该能够在整个应用程序中使用{StaticResource MyBackground}而不是“ White”,然后通过更改资源定义来重新定义整个应用程序的外观。
问题是,如果您在子控件中引用了全局资源,则Expression Blend将无法正常工作。还有其他方法可以为您的应用程序主题化吗?我不愿意失去Blend Designer的支持,也不愿意在每个控件中复制一段代码/ xaml。令他们惊讶的是,他们还没有修复如此严重的错误。
有任何想法吗?
干杯
最佳答案
所以我没有尝试过,但听起来像是可行的。另外,该信息有些陈旧。请告诉我是否可以解决问题。 :)
从the Blend blog,将以下两个块添加到您的项目文件中:
<DesignTime Condition="'$(SolutionPath)'!='' AND Exists('$(SolutionPath)')">true</DesignTime>
….
<ApplicationDefinition Condition="'$(DesignTime)'=='true' AND '$(BuildingInsideVisualStudio)'!='true' AND '$(BuildingInsideExpressionBlend)'!='true'" Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
基本上,这将有条件地将app.xaml包含到项目中,以便在设计时(而不是在构建时)使用它。我猜他们假设人们使用msbuild来生成生产代码,而不是单击build compile按钮。
关于wpf - 使用资源进行主题化而不需要呕吐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10000385/