WPF 字体路径设置

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

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 安装和删除字体)

 

posted @ 2016-06-07 14:50  maanshancss  阅读(2033)  评论(1编辑  收藏  举报