c# - 在 wpf .netcoreapp 3.1 的 MahApps 中样式“找不到资源 'MetroButton”
问题描述
我正在将使用 MahApps.Metro 样式的 wpf .netframework 4.7 应用程序升级到 wpf .netcoreapp3.1 应用程序。迁移后我得到:
System.Windows.Markup.XamlParseException: ''在 'System.Windows.StaticResourceExtension' 上提供值引发异常。
例外:找不到名为“MetroButton”的资源。资源名称区分大小写。
<ResourceDictionary.MergedDictionaries>
<!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/VS/Colors.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/VS/Button.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/VS/Styles.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary>
<!--Button-->
<Style x:Key="SmallButtonStyle" TargetType="Button" BasedOn="{StaticResource MetroButton}">
<Setter Property="Height" Value="40" />
<Setter Property="Width" Value="200" />
<Setter Property="Margin" Value="5,2" />
<Setter Property="FontSize" Value="14" />
</Style>
<Style x:Key="StandardButtonStyle" TargetType="Button" BasedOn="{StaticResource MetroButton}">
<Setter Property="Height" Value="50" />
<Setter Property="Width" Value="350" />
<Setter Property="Margin" Value="10,5" />
<Setter Property="FontSize" Value="20" />
</Style>
这适用于 .netframework 4.7 下的 MahApps.Metro 版本 1.65,但使用 MahApps.Metro 2.0.0-alpha0748 我得到了例外。
解决方案
解决方案:将MetroButton更改为MahApps.Styles.Button
<Style x:Key="SmallButtonStyle" TargetType="Button" BasedOn="{StaticResource MahApps.Styles.Button}">
<Setter Property="Height" Value="40" />
<Setter Property="Width" Value="200" />
<Setter Property="Margin" Value="5,2" />
<Setter Property="FontSize" Value="14" />
</Style>
推荐阅读
- cypress - 如何使用通配符属性测试请求正文
- list - 如何在函数中的 scala 中创建元组列表?
- php - Laravel 默认注销功能代码在哪里
- angular - 如何使用 Angular 9 收听 Quarkus Websocket?
- macos - 我们如何在 DEXT 中获取终止事件 - Catalina DEXT 驱动程序中的问题
- spring-boot - 如何在 Spring Cloud 中处理 com.netflix.client.ClientException
- python - 在打印语句中将字符串作为参数传递
- mongodb - 在 MONGO 返回中删除 _id
- r - 在一个函数中设置几个条件
- sql - 将表中的值添加到另一个与文本框中的值相结合