Сделать шрифт курсивом и полужирным шрифтом
Как вы применяете несколько стилей шрифта к тексту?
System.Drawing.Font MyFont = new System.Drawing.Font(
thisTempLabel.LabelFont,
((float)thisTempLabel.fontSize),
FontStyle.Bold + FontStyle.Italic, // + obviously doesn't work, but what am I meant to do?
GraphicsUnit.Pixel
);
Спасибо за любую помощь!
Ответы
Ответ 1
System.Drawing.Font MyFont = new System.Drawing.Font(
thisTempLabel.LabelFont,
((float)thisTempLabel.fontSize),
FontStyle.Bold | FontStyle.Italic, // + obviously doesn't work, but what am I meant to do?
GraphicsUnit.Pixel
);
Возможно, вы хотели использовать оператор OR (|
)
Ответ 2
FontStyle
- это перечисление флага, поэтому вы можете установить несколько стилей с помощью:
FontStyle.Bold | FontStyle.Italic
Ответ 3
Я думаю, что это FontStyle.Bold | FontStyle.Italic
Обычно вы используете символ pipe (побитовый OR) для объединения нескольких флагов в эти функции
Эта страница объясняет это
http://www.blackwasp.co.uk/CSharpLogicalBitwiseOps_2.aspx
Ответ 4
Я думаю, вы могли бы воспользоваться классом Font:
/*controlName*/.SelectionFont=new Font(maintext.Font, FontStyle.Italic);
Ответ 5
Привет, я писал простой текстовый редактор, и у меня была такая же проблема, я не нашел ничего полезного в Интернете. Метод if, else if не является оптимальным, если в форме много кнопок, поэтому я подумал, почему бы не взять существующий font.style и просто добавить к нему, используя | символ, как люди, предложенные выше. Я тестировал этот код, и он работает. Я вызываю этот метод из pictureBox, который я нажимаю.
Update. Я нашел ошибку. когда вы снимаете выделение шрифта, он также перезагружает все остальные. Но код, который их объединяет, работает.
private void ChangeFontStyle(PictureBox p)
{
if (p == pictureBox1)
{
if (BClicked)
{
richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Bold);
}
else
{
richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Regular);
}
}
else if (p == pictureBox2)
{
if (IClicked)
{
richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Italic);
}
else
{
richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Regular);
}
}
else if (p == pictureBox3)
{
if (UClicked)
{
richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.SelectionFont.Style | FontStyle.Underline);
}
else
{
richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Regular);
}
}
}
P.S Я использовал вместо ячеек прямоугольники, а логические переменные, такие как BClicked, указывают, активированы они или нет.