سؤال

لديّ wpf combobox ملزمة

Me.fontComboFast.ItemsSource = Fonts.SystemFontFamilies


<ComboBox x:Name="fontComboFast">
    <ComboBox.ItemsPanel>
        <ItemsPanelTemplate>
            <VirtualizingStackPanel />
        </ItemsPanelTemplate>
    </ComboBox.ItemsPanel>
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}" FontFamily="{Binding}" FontSize="15" Height="20"/>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

يحدث الاستثناء التالي. كيف ستكون أفضل طريقة لمسح الخطوط. systemfontfamilies من أي خطوط غير صالحة؟

"ملف: /// c:/ملفات البرامج (x86)/ملفات مشتركة/ملف Adobe/Sing/Assocache/generic.otf" لا يتوافق مع مواصفات تنسيق الملف المتوقع.

هل كانت مفيدة؟

المحلول

حسنًا ، ساعدت العينة التالية عينة الخط المختار

يستبعد الرمز التالي أيضًا خطوط الرموز التي لا يمكن استخدامها في وضعي:

Friend Function IsSymbolFont(ByVal FontFamily As FontFamily) As Boolean
    For Each typeface As Typeface In FontFamily.GetTypefaces()
        Dim Face As New GlyphTypeface

        Try
            If typeface.TryGetGlyphTypeface(Face) Then
                Return Face.Symbol
            End If
        Catch e As Exception
            Return True
        End Try

    Next
    Return False
End Function
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top