C#将个性化字体放在资源文件内供程序调用

看下面这个类似LED效果的界面,只需把界面上的文本字体改成:Quartz MS 即可实现这个效果。

UI






很多时候,客户的电脑并没有安装这个字体,比如XP的电脑上都没有这个字体,怎么把这个字体嵌入到资源文件,能让程序调用,在XP上也能正常显示呢?

WPF的实现方法:

在 C:\Windows\Fonts\文件夹内找到 Quartz MS.TTF字体文件,把它添加到WPF工程的Resources内,并设置成Resource类型。

在XAML内添加一个Style,引用这个字体资源

<Window.Resources>
        <Style x:Key="QuartzMSFont">
            <Setter Property="TextElement.FontFamily" Value="Resources/#Quartz MS"/>
        </Style>
</Window.Resources>

调用方法:

<TextBlock Style="{DynamicResource QuartzMSFont}" Text="1234567" />

需要注意的是Value的“#Quartz MS” 的名称必须与字体文件的真实名称一致!如果你双击字体文件Quartz MS.TTF,就可以在字体文件内找到字体名称(如下图所示)

C#将个性化字体放在资源文件内供程序调用_第1张图片









C# Winform 实现的方法比较简单,用以下的代码就可以了:

  System.Drawing.Text.PrivateFontCollection privateFonts = new    System.Drawing.Text.PrivateFontCollection();
  privateFonts.AddFontFile("C:\\Documents and Settings\\QuartzMS.ttf");
  System.Drawing.Font font = new Font(privateFonts.Families[0], 12);
  this.label1.Font = font;


本文源码下载:http://download.csdn.net/detail/soft2buy/6579723


你可能感兴趣的:(C#,资源,字体,WPF)