0
我有一个两个窗口基本系统不使用System.Windows.Forms但System.Windows.Controls,其中一个创建一个FontDialog,所以我不得不包含System.Windows.Forms,因为否则我将无法使用字体对话框。在另一个窗口中,我有一个RichTextBox,它应该使用在另一个窗口的FontDialog中选择的字体/大小/样式。c#解析字体错误
这对于创建FontDialog类的窗口类:
public partial class Window1 : Window
{
public FontDialog font;
public Window1(String name)
{
InitializeComponent();
this.textBox1.Text = name;
}
private void button2_Click(object sender, RoutedEventArgs e)
{
font = new FontDialog();
font.ShowDialog();
}
}
在这里,我所说的WINDOW1和尝试使用其字体。
private void button2_Click(object sender, RoutedEventArgs e)
{
Window1 a = new Window1(this.name);
a.ShowDialog();
var cvt = new FontConverter();
string s = cvt.ConvertToString(a.font.Font);
Console.Out.WriteLine("Value is: " + s);
System.Windows.Media.FontFamily g = (System.Windows.Media.FontFamily) cvt.ConvertFromString(s);
if (g != null)
{
this.textBox2.FontFamily = g;
}
}
它输出正是在FontDialog类选择的,但随后在崩溃行 “this.textBox2.FontFamily =克;”:
Value is: Microsoft Sans Serif; 8,25pt
'_.NetworkingGT_Incrementer.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\WindowsBase.resources\v4.0_4.0.0.0_pt-BR_31bf3856ad364e35\WindowsBase.resources.dll'
A first chance exception of type 'System.ArgumentException' occurred in WindowsBase.dll
A first chance exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll
A first chance exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll
'_.NetworkingGT_Incrementer.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xaml.resources\v4.0_4.0.0.0_pt-BR_b77a5c561934e089\System.Xaml.resources.dll'
A first chance exception of type 'System.Xaml.XamlObjectWriterException' occurred in System.Xaml.dll
A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll
An unhandled exception of type 'System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll
除了你的Window1有点丑陋以外,还要拆分你的排队并进行调试。你究竟在哪里得到这个异常:它在'cvt.ConvertFromString()','FontFamily ='中,在...?另外,是字体大小的逗号扔你吗? –
@lc。它在this.textBox2.FontFamily = g崩溃;如果我评论它然后它不会崩溃 –
好吧,那么你从'cvt.ConvertFromString(s)'中得到什么?注意你使用'as' *而不检查你是否得到一个空结果......不知道你为什么不投。 –