MahApps.Кнопка Metro fontsize не наследуется от metrowindow

Я начинаю изучать WPF и выбираю MahApps.Metro для укладки, как это выглядело круто. Проблема, с которой я сталкиваюсь, заключается в том, что после изменения шрифта MetroWindow шрифт WindowCommandButton обновляется соответственно, но шрифт кнопок не обновляется. Я продолжаю видеть крошечные текстовые кнопки.

Мой XAML выглядит так на данный момент

<MahApps:MetroWindow
    x_Class="MetroSample.MainWindow"
    
    
    
    
    

    

    mc_Ignorable="d"
    Title="Metro Sample" 
    Height="350" Width="525"
    WindowStartupLocation="CenterScreen"
    GlowBrush="{DynamicResource AccentColorBrush}" FontFamily="Lucida Sans Unicode" FontSize="14.667">

<MahApps:MetroWindow.RightWindowCommands>
    <MahApps:WindowCommands>
        <Button x_Name="btnReqLogs">
            <StackPanel Orientation="Horizontal">
                <Rectangle Width="20" Height="20" Fill="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type Button}}}">
                    <Rectangle.OpacityMask>
                        <VisualBrush Stretch="Fill" Visual="{StaticResource appbar_book_list}" />
                    </Rectangle.OpacityMask>
                </Rectangle>
                <TextBlock Margin="4 0 0 0" VerticalAlignment="Center" Text="Request Logs" />
            </StackPanel>
        </Button>

        <Button x_Name="btnSettings">
            <StackPanel Orientation="Horizontal">
                <Rectangle Width="20" Height="20" Fill="{Binding Foreground, RelativeSource={RelativeSource AncestorType={x:Type Button}}}">
                    <Rectangle.OpacityMask>
                        <VisualBrush Stretch="Fill" Visual="{StaticResource appbar_settings}" />
                    </Rectangle.OpacityMask>
                </Rectangle>
                <TextBlock Margin="4 0 0 0" VerticalAlignment="Center" Text="Settings" />
            </StackPanel>
        </Button>
    </MahApps:WindowCommands>
</MahApps:MetroWindow.RightWindowCommands>

<DockPanel LastChildFill="True">

    <DockPanel Height="50" DockPanel.Dock="Top" LastChildFill="False">
        <Button DockPanel.Dock="Left"
            MahApps:ButtonHelper.PreserveTextCase="True" Background="Transparent"
            Content="First Button" Padding="10,0" Width="150" Margin="0,0,2,0"/>

        <Button DockPanel.Dock="Left"
            MahApps:ButtonHelper.PreserveTextCase="True" Background="Transparent"
            Content="Second Button" Padding="10,0" Width="150" Margin="0,0,2,0"/>

        <Button DockPanel.Dock="Right"
            MahApps:ButtonHelper.PreserveTextCase="True" Background="Transparent"
            Content="Logout" Padding="10,0" Width="150" Margin="0,0,2,0"/>
    </DockPanel>

    <StackPanel>

    </StackPanel>
</DockPanel>

1 ответ

  1. Button.FontFamily не наследует от родительского элемента управления. Он определяется в базовом стиле :

    <Setter Property="FontFamily" Value="{DynamicResource DefaultFont}" />
    

    Это можно переопределить следующим образом :

    <Style BasedOn="{StaticResource MetroButton}" TargetType="Button">
        <Setter Property="FontFamily" Value="Lucida Sans Unicode" />
    </Style>
    

    Или вы можете переопределить это глобально для каждого стиля, который также использует его через (Но, не делайте этого) :

    <FontFamily x_Key="DefaultFont">Lucida Sans Unicode</FontFamily>