2012-03-14 11 views
4

でフォントファミリを追加し、私は.csprojに私が持っている、私のWPFアプリケーションでのfontFamilyを追加するmsdn tutorialを使用しています:はのResourceDictionary

<ItemGroup> 
    <Resource Include="Resources\MetaOT-Norm.otf" /> 
    <Resource Include="Resources\MetaOT-Bold.otf" /> 
    </ItemGroup> 

私はそのように、のResourceDictionaryでのfontFamilyを追加しました:

<FontFamily x:Key="FontMetaOT">./Resources/#Meta OT</FontFamily> 

しかし、それは適用されません...(私はWindowsフォントディレクトリのフォントファイルで試して、それはうまく機能しています)。何か案が ?

+0

それはOpenTypeフォントでの問題ですか? –

+0

@ahmetどういう意味ですか?効果的に私は.otf拡張子を使用したサンプルが見つかりませんでした。それらのほとんどは.ttf拡張子を使用しています...このコードで.otf拡張子を使用できると思いますか? – rad

+0

SilverlightはOTFをサポートしています。あなたは直接参照を試みましたか?このように:http://blogs.silverlight.net/blogs/msnow/archive/2008/09/25/silverlight-tip-of-the-day-46-font-support-in-silverlight.aspx – Jeremiah

答えて

2

リソース辞書ファイルを使用している場合は、Pack URI Schemeを使用してファイルのアドレスを指定する必要があります。例えば :

次の例では、 を参照アセンブリのプロジェクトフォルダのルートにあるXAMLリソースファイルのパッケージのURIを示しています。

pack://application:,,,/ReferencedAssembly;component/ResourceFile.xaml 

次の例では、 を参照アセンブリのプロジェクトフォルダのサブフォルダにあるXAMLリソースファイルのパッケージのURIを示しています。

pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml 

次の例では、 が参照、バージョン固有の アセンブリのプロジェクトフォルダのルートフォルダにあるXAMLリソースファイルのパッケージのURIを示しています。

pack://application:,,,/ReferencedAssembly;v1.0.0.1;component/ResourceFile.xaml 

ファイルが出力フォルダに配置されている場合、あなたはそれを参照するために、原点のサイトを利用することができますが:

次の例では、原点のXAMLサイトのパックURIを示し 実行可能アセンブリがある場所に格納されたファイル が起動されました。

pack://siteoforigin:,,,/SiteOfOriginFile.xaml 

次の例では、アプリケーションの実行可能アセンブリが起動され から位置に対する相対サブフォルダに格納されている原点 ファイルのXAMLサイトのパックURIを示します。一例として、

pack://siteoforigin:,,,/Subfolder/SiteOfOriginFile.xaml 

<UserControl.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <!--A resource dictionary in the output folder in the Assets folder--> 
      <ResourceDictionary Source="pack://siteoforigin:,,,/Assets/OpenIconsDictionary.xaml"/> 
      <!--A resource dictionary packed in the Gui dll--> 
      <ResourceDictionary Source="pack://application:,,,/Gui;component/Assets/PackedIconsDictionary.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
</UserControl.Resources> 



<!--In the output folder /Assets/OpenIconsDictionary.xaml (Build Action: Embedded Resource, Copy always)--> 
<ResourceDictionary 
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

    <BitmapImage x:Key="Icon"     
       UriSource="pack://siteoforigin:,,,/Images/image.png"/> 


</ResourceDictionary> 


<!--In Gui.dll in the folder /Assets/PackedIconsDictionary.xaml (Build Action: Page, Do not copy)--> 
<ResourceDictionary 
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

    <BitmapImage x:Key="Icon"     
       UriSource="pack://siteoforigin:,,,/Images/image.png"/> 


</ResourceDictionary> 
+1

しかし、これをFontFamily TagまたはResourceの中でどこで使用しなければならないかは、完全な例を見るのが良いでしょう。 – CularBytes