我正在尝试设置“字体系列”组合框的选定值,该组合框已填充以下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/

10-09 01:18