以往在引用电脑里面没有的其它字体,都是需要把这个字体安装到自己电脑中,

WPF程序中可以直接把字体文件拷到程序资源目录里面,这样就可以引用的到,不必要非安装这种字体;

下面总结了几种路径的具体方法,测试全部ok:

<Window.Resources>
<Style x:Key="FontQR" TargetType="TextBlock" >
<!--当前程序集-->
<!--<Setter Property="FontFamily" Value="/#Quartz"></Setter>-->
<!--当前程序集的某一个文件夹下面-->
<!--<Setter Property="FontFamily" Value="Resources#Quartz"></Setter>-->             <Setter Property="FontFamily" Value="./Resources/Fonts/#方正华隶简体"></Setter>
   
<!--当前程序集的一个文件夹下面-->
<!--<Setter Property="FontFamily" Value="/WpfApplication2;component/Resources#Quartz"></Setter>-->
<!--其它程序集的文件夹下面,WpfApplication2 是程序集名称-->
<Setter Property="FontFamily" Value="pack://application:/WpfApplication2;component/Resources#Quartz"></Setter>
<Setter Property="FontFamily" Value="pack://application:,,,/WpfApplication2;component/Resources#Quartz"></Setter>   <!--上面都是相对路径,再来一个绝对路径  在设计时状态下会报错,但是程序运行起来是正常的-->
            <!--<Setter Property="FontFamily" Value="D:\\#Quartz"></Setter>-->             <!--从部署位置访问文件  我没搞懂这个是什么意思-->
            <!--<Setter Property="FontFamily" Value="pack://SiteOfOrigin:,,,/#Quartz"></Setter>-->
</Style>
</Window.Resources>
<Grid>
<StackPanel>
<TextBlock Style="{ DynamicResource FontQR}" Text="123456789"></TextBlock> <Image Source="Resources/1.jpg" Height="80" Name="asdf0"></Image>
<Image Source="/WpfApplication2;component/Resources/1.jpg" Height="120" Name="asdf1"></Image>
<Image Source="pack://application:,,,/WpfApplication2;component/Resources/1.jpg" Height="40" ></Image>
</StackPanel>
</Grid>

注意事项:

1.Quartz 是这种字体的真实名称;

2.字体#号前面的斜杠是可以没有的,有些时候写上反而会显示不出来,参考别人例子的时候返校是有这个反斜杠,所以在这里耽误了时间

参考网址:

http://blog.csdn.net/soft2buy/article/details/16840515      里面有个路径引用可能是错误的

http://www.cnblogs.com/linjiao0125/archive/2008/12/03/1347151.html       里面介绍了嵌入式资源(即把资源文件打包进程序集和放置在程序目录里面的不同区别)

http://blog.csdn.net/nickwar/article/details/5174259 (.net 安装和删除字体)

05-28 09:17