J'énumère la liste des fontfamilies et les lie à la zone de liste déroulante, le problème est lorsqu'une police du système est corrompue. L'ensemble de l'application va se bloquer. De toute façon je suis capable de lier à systemfontfamilies encore capable d'ignorer la police qui a l'erreur d'affichage? Le code suivant fonctionne correctement si la liaison de fontfamily dans le itemtemplate est commentée.Erreur SystemFontFamilies lors de la liaison à la zone de liste déroulante
<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>
le message d'erreur qui s'est comme suit
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()
S'il vous plaît aider. THanks
Notez, cependant, qu'il est _normal_ pour 'TryGetGlyphTypeface()' de retourner 'null' pour les familles de polices valides, c'est-à-dire les polices composites. Ce n'est pas parce que le fichier retourne "null" que le fichier de police est corrompu (bien sûr, si vous utilisez le 'GlyphTypeface' lui-même, vous devrez faire plus de travail pour le récupérer, en décomposant le composite police ... mais cela ne fait pas partie du problème ici). –