2010-12-03 66 views
5

我在查看是否可以在Silverlight控件中使用應用程序範圍內的字體,該控件可以在application.resources中設置,然後在整個應用程序中使用。他們不需要指定其他字體,如粗體或斜體,只是名稱。Silverlight中的應用程序範圍內的字體資源

這主要是針對需要嵌入到應用程序中的自定義字體。例如,我在找(不是任何特定或控制型)一些簡單的像......

<Setter x:Key="My First Font" 
     Property="FontFamily" 
     Value="VINERTIC.TTF#Viner Hand ITC" /> 

然後在任何給定的控制我會鍵入...

<TextBlock FontFamily="{StaticResource "My First Font"}" 
      x:Name="ApplicationTitle" 
      Text="NEXT PAGE" Foreground="Red"/> 

。 ..或...

FontFamily="{Binding "My First Font"}" 

還是這樣的一些東西。

我知道我做了什麼不起作用,但那是預期的效果。

我似乎無法找到關於如何設置應用程序範圍字體系列的任何文檔。有什麼建議?

回答

4

這裏有一些我認爲會讓你開始的信息。

首先,我知道在一個共享庫中嵌入字體的最簡單的方法(例如:一個Silverlight類庫),是做到以下幾點:

  1. 有一個類庫,並知道它的默認命名空間。在本例中,類庫的默認名稱空間是Common.Windows
  2. 有字體。對於此示例,Action Man Bold.ttf,其中包含指定字體Action Man
  3. 在共享庫項目的某處添加字體。例如,Assets/Fonts文件夾。
  4. 將文件的構建操作設置爲資源
  5. 構建項目。

完成上述步驟後,你可以參考的字體,無論你請,包括風格,語法類似於下面的文本塊:

<TextBlock 
FontFamily="/Common.Windows;component/Assets/Fonts/Action Man Bold.ttf#Action Man" /> 

注意,FontFamily表達上面的容器內工作項目在引用項目中。我沒有用字體的zip存檔來測試這個過程,但我敢打賭,花園裏的花式石頭仍然可以工作。

這應該讓你開始。如果你有興趣去宣告一個風格的字體,並使用你的控制風格的額外(且有用的)一步,考慮採取看看這個資源:

http://www.silverlight.net/learn/quickstarts/control-styles/

+0

+1,只是想添加Blend嵌入字體在Class Lib中不起作用。這是讓它工作的唯一方法。 – 2013-03-08 04:09:44

相關問題