Fazendo texto específico Boldefaced em um TextBox

Oi Eu atualmente tenho um texbox que imprime informações para o usuário quando eles pressionam botões diferentes. Eu queria saber se havia uma maneira de fazer apenas alguns dos meus textos em negrito, enquanto o resto não é.

Eu tentei o seguinte:

textBox1.FontWeight = FontWeights.UltraBold; textBox1.Text. = ("Your Name: " ); TextBox1.FontWeight = FontWeights.Regular; textBox1.Text += (nameVar); 

O único problema é que o uso dessa maneira tornará tudo em negrito ou nada. Existe uma maneira de fazer isso? Estou usando o projeto WPF em c #

Quaisquer comentários ou sugestões são apreciados. Obrigado!

EDIT: Então, agora eu estou tentando fazer a checkbox RichText que todos vocês sugeriram, mas eu não consigo obter nada para aparecer nele:

 // Create a simple FlowDocument to serve as the content input for the construtor. FlowDocument flowDoc = new FlowDocument(new Paragraph(new Run("Simple FlowDocument"))); // After this constructor is called, the new RichTextBox rtb will contain flowDoc. RichTextBox rtb = new RichTextBox(flowDoc); 

rtb é o nome do meu richtextbox que eu criei no meu wpf

obrigado

use um RichTextBox, abaixo de um método que escrevi para este problema – espero que ajude 😉

 ///  /// This method highlights the assigned text with the specified color. ///  /// The text to be marked. /// The new Backgroundcolor. /// The RichTextBox. /// The zero-based starting caracter position. public static void ChangeTextcolor(string textToMark, Color color, RichTextBox richTextBox, int startIndex) { if (startIndex < 0 || startIndex > textToMark.Length-1) startIndex = 0; System.Drawing.Font newFont = new Font("Verdana", 10f, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, 178, false); try { foreach (string line in richTextBox.Lines) { if (line.Contains(textToMark)) { richTextBox.Select(startIndex, line.Length); richTextBox.SelectionBackColor = color; } startIndex += line.Length +1; } } catch { } } 

Você pode usar o TextBlock com outros TextBlock s ou Run s dentro:

  normal text bold text more normal text more bold text  

Você precisará usar um RichTextBox para conseguir isso:

    Your Name:     

Mas por que você quer que “Seu nome” seja editável? Certamente você iria querer isso como um label separado, somente leitura?

     

Um TextBox regular suporta apenas a configuração de tudo ou nada dessas propriedades estilísticas. Você pode querer olhar para RichTextBox , porém, você não pode simplesmente especificar um conjunto de valores para uma propriedade Text da maneira que você tentou – você precisará trabalhar com um FlowDocument para construir seu corpo de texto através da propriedade Document .

Para uma visão geral do trabalho com um FlowDocument , e alguns exemplos, dê uma leitura .

Dê uma olhada no Controle RichTextBox, ele basicamente funciona da mesma forma que o TextBox, mas permite mais customizações e, é claro, usa Rich Text, que permite a formatação parcial.

Tomando o excelente exemplo de jwillmer, fiz alguns ajustes porque estava colorindo toda a linha de erro para mim:

  public static void ChangeTextcolor(string textToMark, Color color, RichTextBox richTextBox) { int startIndex = 0; string text = richTextBox.Text; startIndex = text.IndexOf(textToMark); System.Drawing.Font newFont = new Font("Verdana", 10f, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, 178, false); try { foreach (string line in richTextBox.Lines) { if (line.Contains(textToMark)) { richTextBox.Select(startIndex, textToMark.Length); richTextBox.SelectionColor = color; richTextBox.SelectionFont = newFont; } } } catch{ } } 

Além disso, adicionei tags exclusivas antes e depois do texto para colorir para obter o texto e, em seguida, removi-as.

A resposta de jwillmer teve alguns erros para mim. Estes foram resolvidos adicionando:

 using System.Drawing; 

e depois alterando as inputs para:

 public static void ChangeTextcolor(string textToMark, System.Drawing.Color color, System.Windows.Forms.RichTextBox richTextBox, int startIndex) 

Isso porque meu código estava procurando por System.Windows.Controls.RichTextbox não Windows.Forums.RichTextBox . E System.Windows.Media.Color não System.Drawing.Color