所以我试图更改项目中的默认字体系列和字体大小。我决定从按钮开始。
我是这样做的(我将为我的风格创建一个单独的文件,但现在我只想让它以某种方式工作):
<Controls:MetroWindow.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Templates/MyTemplateSelector.xaml"/>
<ResourceDictionary Source="/Templates/FullMenu.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style BasedOn="{StaticResource MetroButton}" TargetType="Button">
<Setter Property="FontFamily" Value="Calibri" />
</Style>
</ResourceDictionary>
</Controls:MetroWindow.Resources>
并没有任何变化。有什么问题?
我想这是因为程序无法找到&#34; {StaticResource MetroButton}&#34;。
的App.xaml
<Application x:Class="WpfApp2.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApp2"
xmlns:dialogYesNo="clr-namespace:WpfApp2.DialogYesNo"
StartupUri="Views/MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
<!-- Accent and AppTheme setting -->
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
<ResourceDictionary Source="ViewModels.xaml" />
<ResourceDictionary Source="Dialogs.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
答案 0 :(得分:0)
除了定义一个样式只是为了设置fontfamily / weight,您可以直接在资源中定义fontfamily和weight with a key(一个带有我使用的字体的例子)
<Controls:MetroWindow.Resources>
<FontFamily x:Key="FontAwesome">/tuseradm;component/assets/fontawesome-webfont.ttf#FontAwesome</FontFamily>
</Controls:Flyout.Resources>
然后在你的按钮中设置字体系列
<Button FontFamily="{StaticResource FontAwesome}" Content="" />
编辑添加另一个答案:
默认情况下,mahapps会覆盖默认的wpf样式。如果你想修改一个样式,让你在所有视图中说按钮,你不需要根据
使用<Style BasedOn="{StaticResource {x:Type Button}}" TargetType="Button">
<Setter Property="FontFamily" Value="Calibri" />
<Setter Property="FontWeight" Value="ExtraLight"/>
</Style>
编辑2
至少对我而言,即使我在设计时看到使用第一次编辑中公开的方法的更改,在运行时问题仍然存在。所以在我看来,坚持我的第一个答案要好得多。也许为每个按钮设置fontfamily和fontweight可能很烦人,但它是处理mahapps样式的最安全的方法。解决这个100%肯定的唯一方法是找到(不知道哪里)mahapps按钮的模板并修改它
答案 1 :(得分:0)
因此,您只需在声明地铁参考后在App.xaml中使用它:
<Style TargetType="Label">
<Setter Property="FontFamily" Value="Segoe UI Light"/>
</Style>
<Style TargetType="TextBlock">
<Setter Property="FontFamily" Value="Segoe UI Light"/>
</Style>
<Style TargetType="TextBox">
<Setter Property="FontFamily" Value="Segoe UI "/>
</Style>
Button使用TextBox,因此按钮将自动更改。