簡體   English   中英

在 Windows 8.1 應用程序中更改全局應用程序字體

[英]Change global application font in a Windows 8.1 app

網上有很多關於如何嵌入自定義字體、創建字體樣式並將它們應用到控件的文章。 但是如何覆蓋全局應用程序字體,以便每個控件都使用該字體,而不是為每個控件手動設置 FontFamily 屬性。 就我而言,我不希望使用自定義字體作為全局字體,而是使用系統字體,例如 Tahoma 或 Calibri。

在 winrt 中,所有控件的默認字體系列 ContentPresenter 是Segoe Ui ,其鍵是ContentControlThemeFontFamily

-*您可以更改或覆蓋資源字典中按鈕、組合框項、列表框項等的字體系列,因為它們具有模板屬性(contenpresenter 或 itempresenter)

1) 轉到 StandardStyles.xaml

在此處輸入圖片說明

2) 在 ThemeDictionaries 的默認和高對比度資源字典中添加<FontFamily x:Key="ContentControlThemeFontFamily">Tahoma</FontFamily> ,如下所示。

   <ResourceDictionary.ThemeDictionaries>
    <ResourceDictionary x:Key="Default">
        <x:String x:Key="BackButtonGlyph">&#xE071;</x:String>
        <x:String x:Key="BackButtonSnappedGlyph">&#xE0BA;</x:String>
        <FontFamily x:Key="ContentControlThemeFontFamily">Tahoma</FontFamily>
    </ResourceDictionary>
    <ResourceDictionary x:Key="HighContrast">
        <FontFamily x:Key="ContentControlThemeFontFamily">Tahoma</FontFamily>
        <x:String x:Key="BackButtonGlyph">&#xE071;</x:String>
        <x:String x:Key="BackButtonSnappedGlyph">&#xE0C4;</x:String>
    </ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>

但是 Textblock 沒有模板屬性,因此您可以更改其屬性,如下所示

1.第一種方法

 <TextBlock  FontFamily="{StaticResource ContentControlThemeFontFamily }" >dfdsfsdf</TextBlock>

2. 第二種方法

<Page
x:Class="App3.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App3"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  
mc:Ignorable="d" FontFamily="{StaticResource ContentControlThemeFontFamily}">
<Grid>
    <TextBlock>Hello World</TextBlock>
</Grid>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM