2012-03-04 88 views
1

我需要在WP7上顯示已安裝的字體。有沒有簡單的方法來做到這一點? 截至目前我正試圖綁定使用ListPicker的字體名稱和列表,但實際上我並不需要。在WP7中顯示字體

我需要找到WP7上列出的字體,並在ListPicker全屏模式下顯示它們。

這是我現在有:

數據模板

<DataTemplate x:Name="lpkFontNames"> 
     <TextBlock Text="{Binding FontNames}" /> 
</DataTemplate> 

* ListPicker:*

<toolkit:ListPicker FullModeItemTemplate="{Binding lpkFontNames}" 
       Grid.Row="1" Grid.Column="1" x:Name="lpkFontName" Width="290" Height="63" FullModeHeader="Selct Font Name"/> 

而在代碼隱藏:

Dim FontNames() As String = { "Arial","Segoe UI", "Times New Roman", "Cambria"} 

Me.lpkFontName.ItemsSource = FontNames 

* 編輯:*

我跟着this但我無法填充他們

回答

1

問題是與你的DataTemplate - 你TextBlock的結合不會有‘FontNames’屬性。對於ListPickerItemsSource中的每個項目,您的DataTemplate的實例將被創建並綁定到ItemsSource中的該項目。你想要做的就是將TextBlock的屬性直接綁定到已創建DataTemplate的項目。例如;

<DataTemplate x:Name="lpkFontNames"> 
    <TextBlock Text="{Binding}" 
       FontFamily="{Binding}" 
       /> 
</DataTemplate> 

我假定你想要的字體名稱,字體本身顯示,按Custom Font Picker?如果不是,請將您的DataTemplate中的TextBlockFontFamily屬性刪除。例如;

<DataTemplate x:Name="lpkFontNames"> 
    <TextBlock Text="{Binding}" 
       /> 
</DataTemplate> 
+0

@ MrMDavidson,感謝您的回覆,我得到了它的工作,如果我需要獲得所選字體做什麼我需要做這樣我需要得到與此類似:?textbox1.text = ListPicker。 SelectedFont.Can我做了這樣的事情來獲得選定的字體。 – coder 2012-03-07 08:00:45

+0

您可以通過使用SelectedItem屬性來獲取ListPicker的當前選定項目。由於這是一個對象,你需要將它轉換爲適當的類型(在你的情況下爲'string')。如果你啓用了多個選擇,你可以通過'SelectedItems'(注意** s **)屬性來獲得'IList'。同樣,需要適當地投射每個項目。 – MrMDavidson 2012-03-07 23:16:32