2016-05-04 5 views
0

プロジェクトのリソースフォルダにあるフォントにアクセスしようとしています。現在、私は、フォントファミリのリソースを宣言しました:ローカルリソースのフォントファミリリソース

<FontFamily x:Key="FontFamilyNormal">Resources/#Bank Gothic Medium</FontFamily> 

このリソースを参照すると、フォントを表示できません。 "Resources /#"を削除してBank Gothic Mediumを使用すると動作しますが、アクセスしたいリソースフォルダではなくOSからフォントにアクセスしていると思います。 FontFamilyリソースを使用して自分のリソースフォルダ内からフォントファイルにアクセスする方法はありますか?

+0

パックURIを使用しようとしましたが、動作しませんでした。 ' pack://アプリケーション:,,,,/Resources/Bank Gothic Medium.ttf' – admiral142

答えて

0

フォントはアプリケーションに埋め込むルールがあり、その条件を満たすフォントだけが埋め込みに対応しています。

  • フォントはフォントがこの方法で使用するライセンスを取得する必要がありますTrueTypeフォント(.TTF)
  • でなければなりません。
  • の.ttfファイルのビルドアクションは、「リソース」

でなければならない、私はそれのうち、リソースを作成する前にTextBlockに直接フォントをテストすることをお勧めしたいです。

<TextBlock FontFamily="./Resources/Resources#Bank Gothic Medium">Test</TextBlock> 

注:./resources/ ISN」それは、我々は完全なパスを捨てる試すことができます動作する場合

<TextBlock FontFamily="file:///d:/MyProjects/Project/Resources#Bank Gothic Medium">Test</TextBlock> 

しようとする最初の事は、このようなフォントの絶対パスです。ディレクトリではなく特別なパス。パスは使用できますが、そのパスは使用されているコントロールに相対的なものであり、プロジェクトのルートに到達するには良い方法はありません。

最後に、どこにいても一番うまくいくはずのパックURLがあります。それは次のようになります。

<TextBlock FontFamily="pack://application:,,,/Fonts/#Bank Gothic Medium">Test</TextBlock> 

Note: In this last one we used the actual directory for where the font will be.

それはあなたの非常に近いように見えます!

+0

Nate、あなたのFinallyステートメントでは、 "Test"だけが表示されます。これは意図的ですか? – admiral142

関連する問題