Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WPF应用程序中应用字体时出现COM异常_C#_Wpf_Fonts - Fatal编程技术网

C# 在WPF应用程序中应用字体时出现COM异常

C# 在WPF应用程序中应用字体时出现COM异常,c#,wpf,fonts,C#,Wpf,Fonts,我们有一个带有下拉字体列表的文本编辑器。与Word一样,该列表也采用了字体本身的样式 我们发现至少有一种字体会使编辑器崩溃。字体为Niconne常规字体,可以从Google Web Fonts::search Niconne下载,单击“添加到收藏”,然后单击右上角的箭头按钮“下载”。然后,将字体复制到Windows\Fonts文件夹中 我已经能够创建一个简单的项目,在这里复制该bug: 以下是简化代码: <ComboBox Name="DropFontName"> <Com

我们有一个带有下拉字体列表的文本编辑器。与Word一样,该列表也采用了字体本身的样式

我们发现至少有一种字体会使编辑器崩溃。字体为Niconne常规字体,可以从Google Web Fonts::search Niconne下载,单击“添加到收藏”,然后单击右上角的箭头按钮“下载”。然后,将字体复制到Windows\Fonts文件夹中

我已经能够创建一个简单的项目,在这里复制该bug:

以下是简化代码:

<ComboBox Name="DropFontName">
  <ComboBox.ItemTemplate>
      <DataTemplate>
          <Viewbox>
              <TextBlock Name="TextFontName" 
                Text="{Binding Path=Source, Converter={local:FontNameFormatConvertor}}" 
                FontFamily="{Binding}" />
          </Viewbox>
      </DataTemplate>
  </ComboBox.ItemTemplate>
</ComboBox>

DropFontName的ItemsSource绑定在视图代码中,源是一个
ObservableCollection

每次打开DropFontName以选择字体时,它都会崩溃(因此,基本上,每当.Net尝试将字体应用于元素时)。
如果我从我的字体中删除导致问题的字体,它就会工作。如果我删除FontFamily绑定,它在我打开下拉列表时工作,但在我应用字体时崩溃

该字体在任何其他非WPF应用程序(例如Word)中都可以正常工作

问题是,除了主要的“接球手”外,碰撞没有被接住。stacktrace只提到内部错误。我想我可以捕捉到这个错误并在绑定时删除有问题的字体,但是因为我不知道如何捕捉它,所以我不能


谢谢

对于信息,我们已经有了一个验证字体的方法,但它不能解决我们的问题。