以往在引用電腦里面沒有的其它字體,都是需要把這個字體安裝到自己電腦中,
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 安裝和刪除字體)