Enumero la lista de familias de fuentes y me vinculo al cuadro combinado, el problema es cuando hay una fuente en el sistema que está dañada. Toda la aplicación se bloqueará. De todos modos, ¿puedo unirme a las familias de las familias del sistema pero puedo omitir la fuente que muestra errores?Error SystemFontFamilies al vincular al cuadro combinado
El siguiente código funciona bien si se comenta el enlace de la familia de fuentes en la plantilla del elemento.
<ComboBox x:Name="comboFonts"
Grid.IsSharedSizeScope="True"
Grid.Row="0" Grid.Column="1"
ItemsSource="{Binding Source={x:Static Member=Fonts.SystemFontFamilies}}"
SelectedItem="{Binding FontFamily, Mode=TwoWay}"
HorizontalAlignment="Stretch">
<ComboBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="FontName"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Source}" HorizontalAlignment="Left"/>
<Label FontFamily="{Binding FallbackValue=Verdana}" HorizontalAlignment="Right">Sample</Label>
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
el mensaje de error que se obtiene es la siguiente
Message=Input file or data stream does not conform to the expected file format specification.
Source=PresentationCore
StackTrace:
at MS.Internal.Text.TextInterface.Native.Util.ConvertHresultToException(Int32 hr)
at MS.Internal.Text.TextInterface.Font.CreateFontFace()
at MS.Internal.Text.TextInterface.Font.AddFontFaceToCache()
at MS.Internal.Text.TextInterface.Font.GetFontFace()
por favor ayuda. THanks
Sin embargo, tenga en cuenta que _normal_ para 'TryGetGlyphTypeface()' devuelve 'null' para familias de fuentes válidas, es decir, fuentes compuestas. El hecho de que devuelva 'null', eso no significa necesariamente que el archivo de fuente esté dañado (por supuesto, si confía en el' GlyphTypeface' en sí mismo, tendrá que trabajar más para conseguirlo, descomponiendo el compuesto fuente ... pero eso no es parte del problema aquí). –