2011-10-07 70 views
5

有什麼方法可以將Silverlight使用的默認字體(可移植用戶界面)更改爲自定義字體,而無需爲每個UI元素指定樣式?我想避免必須顯式設置樣式或將FontFamily綁定到靜態資源。如何更改Silverlight使用的默認字體?

我想我可以使用隱式的風格,但我必須這樣做,對於每一個UI控件類型:按鈕,TextBlock的,文本框等,等......

我希望我能加入到我的風格詞典(當然這是不允許的):

<FontFamily >"TCCEB.TTF#Tw Cen MT"</FontFamily> 

回答

3

如果你用一個ContentControl封裝你的整個應用程序並在其中指定它的FontFamily,只要你沒有在你的任何子控件中指定FontFamily,字體應該流向它們的全部。

+1

謝謝,它的工作原理。我還必須爲ChildWindow(模態對話框)設置隱式樣式,因爲它不會繼承FontFamily。 –

+0

很高興知道。 ;) –

0

這就是我們所做的:

<Application.Resources> 
    <FontFamily x:Key="DefaultFontFamily">/MyName.MyApp;component/Assets/segoeui.ttf#Segoe UI</FontFamily> 

    <Style TargetType="Button"> 
     <Setter Property="FontFamily" Value="{StaticResource DefaultFontFamily}"/> 
     <Setter Property="FontSize" Value="14.666"/> 
    </Style> 

    <Style TargetType="HyperlinkButton"> 
     <Setter Property="FontFamily" Value="{StaticResource DefaultFontFamily}"/> 
     <Setter Property="FontSize" Value="14.666"/> 
    </Style> 

    ... 

</Application.Resources> 

遠非完美,我害怕。