我正在尝试设置“字体系列”组合框的选定值,该组合框已填充以下XAML:
<ComboBox ItemsSource="{x:Static Fonts.SystemFontFamilies}" Name="cboFont">
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel MinWidth="256" />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Margin="2" Text="{Binding}" FontFamily="{Binding}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
我必须将组合框设置为的字段是一个字符串,但这会导致FormatExceptions。任何人都可以快速告诉我combobox期望什么类以及如何转换字符串,例如“ Arial”改为该格式?
最佳答案
希望我已正确理解您的问题。
FontFamily支持构造函数
FontFamily(String familyName);
因此,您应该能够使用类似
new FontFamily("Arial")
的方式将字符串转换为FontFamily。您可以将其放在实现
IValueConverter
的类中,该类在FontFamily和String之间进行转换。要从FontFamily转换为字符串,可以访问FamilyNames属性以获取特定于特定区域性的字体的名称。
然后只需设置您的FontFamily绑定即可使用该转换器。
关于c# - WPF FontFamily格式问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3451352/