2015-04-06 2 views
0

У меня есть диалог шрифта, позволяющий пользователю выбрать имя шрифта, размер шрифта, а также, возможно, стиль шрифта.Форматы шрифтов PDF Sharp

но этот код не работает

XFont myFont = new XFont(txtP.Font.Name, txtP.Font.Size, txtP.Font.Style); 

Ошибка: Ошибка 2 Аргумент 3: не может конвертировать из 'System.Drawing.FontStyle' до 'PdfSharp.Drawing.XFontStyle'/ ошибки 1 лучший перегруженный метод подходит для 'PdfSharp.Drawing.XFont.XFont (строка, двойной, PdfSharp.Drawing.XFontStyle)' имеет некоторые недопустимые аргументы

является Ther e обходным путем? Я бы очень хотел, чтобы пользователи выбирали стиль шрифта, а не только имя и размер.

ответ

0

Я решил проблему,

XFont myFont = new XFont(txtP.Font.Name, txtP.Font.Size, (PdfSharp.Drawing.XFontStyle)fontStyle); 
+0

Поскольку XFontStyle и FontStyle используют одни и те же значения, приведение будет работать. –

0

XFontStyle - перечисление, определяемое PdfSharp. Как и ошибка, нет способа конвертировать System.Drawing.FontStyle 'в' PdfSharp.Drawing.XFontStyle '.

Варианты:

  1. Пусть пользователю выбрать непосредственно из значений xFontStyle.
  2. Создайте конверторный метод между FontStyle и XFontStyle.

Второй метод немного сложный, потому что вам нужно сопоставить значения в первом перечислении со вторым, и, как вы можете видеть, они не совсем то же самое, но это можно сделать. enter image description here enter image description here

+0

фрагмент из MigraDoc исходного кода: 'общественных перечислений XFontStyle // тех же значения, как System.Drawing.FontStyle'. BoldItalic - это просто сочетание полужирного и курсивного. –

Смежные вопросы