none
设置WPF程序全局字体 RRS feed

答案

  • 其实这个问题要根据你的具体需求了,实现的方法有很多。

    比如,你可以在你的MainWindow中设置:

    <Window x:Class="WpfApplication25.MainWindow"

            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

            Title="MainWindow" Height="414" Width="615" FontFamily="Comic Sans MS">

    这样在这个Window中显示的文字都是“Comic Sans MS”字体了。

    再比如,你可以定义一个全局的Style,通过这个Style去设置全局的字体和尺寸:

    <Application.Resources>

        <Style TargetType="{x:Type TextElement }">

            <Setter Property="FontFamily" Value="Comic Sans MS"/>

            <Setter Property="FontSize" Value="30"/>

        </Style>

        <Style TargetType="{x:Type TextBlock }">

            <Setter Property="FontFamily" Value="Comic Sans MS"/>

            <Setter Property="FontSize" Value="30"/>

        </Style>

    </Application.Resources>

    因为WPF使用了2个主要的control去显示文字,一个是TextElement,另一个是TextBlock,设置了这两个style,你的全局字体应该会改变。

    另一种方案是实用“OverrideMetadata"去重新设置你应用程序的默认字体,参考:

    TextElement.FontFamilyProperty.OverrideMetadata(typeof(TextElement), new FrameworkPropertyMetadata(new FontFamily("Comic Sans MS")));

    TextBlock.FontFamilyProperty.OverrideMetadata(typeof(TextBlock), new FrameworkPropertyMetadata(new FontFamily("Comic Sans MS")));

    你可以根据你的需求,选一个适合你的。

     

    Best regards,


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 懵盛盛 2011年4月7日 10:14
    2011年4月7日 7:41
    版主

全部回复

  • 其实这个问题要根据你的具体需求了,实现的方法有很多。

    比如,你可以在你的MainWindow中设置:

    <Window x:Class="WpfApplication25.MainWindow"

            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

            Title="MainWindow" Height="414" Width="615" FontFamily="Comic Sans MS">

    这样在这个Window中显示的文字都是“Comic Sans MS”字体了。

    再比如,你可以定义一个全局的Style,通过这个Style去设置全局的字体和尺寸:

    <Application.Resources>

        <Style TargetType="{x:Type TextElement }">

            <Setter Property="FontFamily" Value="Comic Sans MS"/>

            <Setter Property="FontSize" Value="30"/>

        </Style>

        <Style TargetType="{x:Type TextBlock }">

            <Setter Property="FontFamily" Value="Comic Sans MS"/>

            <Setter Property="FontSize" Value="30"/>

        </Style>

    </Application.Resources>

    因为WPF使用了2个主要的control去显示文字,一个是TextElement,另一个是TextBlock,设置了这两个style,你的全局字体应该会改变。

    另一种方案是实用“OverrideMetadata"去重新设置你应用程序的默认字体,参考:

    TextElement.FontFamilyProperty.OverrideMetadata(typeof(TextElement), new FrameworkPropertyMetadata(new FontFamily("Comic Sans MS")));

    TextBlock.FontFamilyProperty.OverrideMetadata(typeof(TextBlock), new FrameworkPropertyMetadata(new FontFamily("Comic Sans MS")));

    你可以根据你的需求,选一个适合你的。

     

    Best regards,


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 懵盛盛 2011年4月7日 10:14
    2011年4月7日 7:41
    版主
  • <Window.Resources>
         <Style TargetType="{x:Type Control}" x:Key="baseStyle">
             <Setter Property="FontSize" Value="100" />
         </Style>
         <Style TargetType="{x:Type Button}" BasedOn="{StaticResource baseStyle}"></Style>
         <Style TargetType="{x:Type Label}" BasedOn="{StaticResource baseStyle}"></Style>
         <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource baseStyle}"></Style>
         <Style TargetType="{x:Type ListView}" BasedOn="{StaticResource baseStyle}"></Style>
         <!-- ComboBox, RadioButton, CheckBox, etc... -->
    </Window.Resources> 
    
    2011年4月7日 7:52
  • 如果标题栏和工具栏需要不同的字体,应该如何处理?
    2015年1月27日 0:50