程序中如何使用TTF

有些时候我们需要漂亮的字体,比如说微软雅黑,但是系统却不自带,这个时候我们就需要自己把字库文件加入到系统当中来是用。简单的方法如下:

c#版本:

 

    //声明使用的API

        [DllImport("coredll", EntryPoint = "AddFontResource")]
        private extern static  int AddFontResource([In, MarshalAs(UnmanagedType.LPWStr)]string fontSource);

 

//加载字体
                int installFont = AddFontResource(@"/NAND/MSYH.ttf");
                if (installFont != 0)
                {
                    showAreaFont = "微软雅黑";//说明我们装载的字体成功
                }
                else
                {
                    showAreaFont = "Arial";//使用默认字体吧。
                }

 

这个就简单了。

在构造字体的时候使用上面的ShowAreaFont来指定字体就搞定了。

注意不用了,使用RemoveFontResource 来移除。

### 在 WPF 中加载和使用 TTF 字体文件的方法 要在 WPF 应用程序中加载并使用 TTF 字体文件,可以通过以下方式实现: #### 1. 将字体文件添加到项目中 将所需的 `.ttf` 或 `.otf` 文件拖放到项目的资源文件夹中。例如,在解决方案资源管理器中创建一个名为 `Fonts` 的文件夹,并将字体文件放入其中[^2]。 #### 2. 设置字体文件的构建操作属性 选中已添加的字体文件,将其 **“生成操作”** 属性设置为 **Resource**。这一步非常重要,因为只有这样,WPF 才能识别该字体作为嵌入资源的一部分[^3]。 #### 3. 配置 XAML 来引用字体 在 XAML 文件中通过 `<FontFamily>` 标签来指定字体路径。以下是两种常见的配置方法: ##### 方法一:直接在控件上应用字体 可以直接在任何支持字体样式的控件(如 `TextBlock` 或 `Label`)中指定字体族名称。假设字体文件名是 `MyCustomFont.ttf`,其内部字体名称为 `My Custom Font`,则可以在 XAML 中如下声明: ```xml <TextBlock FontFamily="/#My Custom Font" Text="这是一个测试文字"/> ``` 此处 `/#` 表示从当前应用程序包中的默认命名空间查找字体资源[^4]。 ##### 方法二:全局注册字体以便重用 如果希望在整个应用程序范围内共享此字体,则可以将其定义在 `App.xaml` 的全局资源字典中: ```xml <Application.Resources> <FontFamily x:Key="CustomFont">/#My Custom Font</FontFamily> </Application.Resources> ``` 之后可在任意页面或窗口中通过键值访问它: ```xml <Window.FontFamily>StaticResource CustomFont}</Window.FontFamily> ``` #### 4. 动态加载字体(可选) 除了静态绑定外,还可以利用 C# 编程动态加载字体。下面是一个简单的例子展示如何完成这一目标: ```csharp var fontFamily = new FontFamily(new Uri("pack://application:,,,/"), "./#My Custom Font"); textBlock.FontFamily = fontFamily; ``` 这里需要注意的是 URI 路径应正确指向实际存储位置[^1]。 --- ### 注意事项 - 如果遇到显示异常的情况,请确认所使用的 Unicode 字符范围是否被选定字体支持。 - 对于某些特殊字符集的支持可能还需要额外调整编码选项或其他依赖项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值