#c# #fonts #ms-word #openxml
#c# #шрифты #ms-word #openxml
Вопрос:
У меня есть функция, которая принимает пару параметров шрифта и создает требуемый шрифт в классе RunProperties. Как я могу включить / выключить класс Bold? MSDN был довольно бесполезен в этой проблеме.
public RunProperties getRCFont(int size, string color = "000000", string font = "Futura Bk BT", bool bld = false, bool und = false) {
return new RunProperties(new Bold() { Val = bld ? OnOffOnlyValues.On : OnOffOnlyValues.Off });
}
Это не работает, выдает эту ошибку:
Ошибка 1 Не удается неявно преобразовать тип ‘DocumentFormat.OpenXML.Обработка текста.OnOffOnlyЗначит’ to ‘Формат документа.OpenXML.OnOffValue’
Но класс OnOffValue не имеет свойств!!
PS: Класс подчеркивания имеет класс UnderlineValues, но не для класса Bold (такого как BoldValues), бах.
Редактировать — Мне жаль, что я это понял. Для всех, кого интересует решение:
return new RunProperties(new Bold() { Val = bld ? new OnOffValue { Value = true } : new OnOffValue { Value = false } });
Ответ №1:
RunProperties(new Bold() { Val = bld ? new OnOffValue { Value = true } : new OnOffValue { Value = false } });
Комментарии:
1. Другой (более короткий) способ написать это: RunProperties(new Bold() { Val = OnOffValue. Из Boolean(bld) } );
Ответ №2:
Вы можете возобновить строку с помощью bld вместо использования оператора «?:»
RunProperties(new Bold() { Val = новое значение OnOffValue { Value = bld } });