Hmm, I think I found the problem. I had a textblock style that apparently was overriding the fontsize property - even if you explicitly set it on the button. It seems weird that a style would override a value you set explicitly set on an element.
I think my question is now two-fold:
1): Is there any way to have a "default" textblock fontsize value, like I was doing in the TextBlock style, while still being able to change the font size on a specific button?
2): I changed the TextBlock in the ControlTemplate to a ControlPresenter and removed the TextBlock style's fontsize setter, and now the fontsize changes when you set it on the button. But, it now seems off.
Before:
https://i.imgur.com/ujLIbav.png
After:
https://i.imgur.com/XpT69t8.png
This is with the same font size. This is what my new ContentTemplate looks like:
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}"
Padding="{TemplateBinding Padding}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
SnapsToDevicePixels="true">
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"
TextBlock.FontSize="{TemplateBinding FontSize}"
TextBlock.FontWeight="{TemplateBinding FontWeight}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource Button.MouseOver.Background}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource Button.Pressed.Background}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="{StaticResource Button.Disabled.Background}"/>
<Setter Property="Foreground" Value="{StaticResource Button.Disabled.Foreground}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
Here is how the button is declared:
<Button Content="Info" Grid.Row="3" Grid.Column="2"
FontSize="24" Margin="5"
Foreground="White" Focusable="False"
Command="{Binding InfoCommand}"/>
Sorry for deviating so far from the original question.