我正在使用 WPF 控件和 MahApps 样式开发 Excel 文档自定义。使用 Excel 2013 和物理 Excel 2010 框(两者都有 VS2012)在我的虚拟化开发框上一切正常。
在其他运行 Excel 2010 或 Excel 2013 的虚拟机上,这些样式不起作用。这是在运行完全相同的代码时。
这与此处和本文中报告的问题类似。
如果对您有帮助,我将分享我的发现。从各种测试看来,如果将 MahApp 资源放在 UserControl 或 Window 中,它们就可以工作。但是,将它们放在我自己的资源字典中并将该字典加载到用户控件中不起作用。
例如,这有效
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colours.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
但
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/IressWorkbook;component/Assets/MyTheme.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
没有,其中 MyTheme 包含
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:System="clr-namespace:System;assembly=mscorlib">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colours.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
我试图找出可以工作的机器和不工作的机器之间的区别。
问候艾伦