Ich habe eine wpf app, C#, die Texte anzeigt (teahcer Name), wenn eine Combobox geschlossen wird. Grundsätzlich ist es in 1 String enthalten und wird an die classInstance.TeachersComboBoxText
oder Text="{Binding Path=TeachersComboBoxText}"
übergeben. Alles ist großartig, aber der Kunde bittet darum, dass der Text kursiv ist, wenn der Lehrer als Standard oder als Zweitlehrer gekennzeichnet ist. Grundsätzlich muss ich eine Zeichenkette haben, aber unterschiedliche Schriftstile werden darauf angewendet, hängt von meinen Daten ab.Wie man verschiedene Schriftstile in einer Zeichenkette anwendet
<ComboBox Name="instanceTeachersComboBox"
IsEditable="True"
IsReadOnly="True"
ItemsSource="{Binding Path=TeacherList}" DropDownClosed="teachersComboBox_DropDownClosed"
Text="{Binding Path=TeachersComboBoxText}"
FontWeight="{Binding Path=IsSelectedFontWeight}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding Path=IsSelected}"
Background="{Binding Path=IsActiveColour}"
Content="{Binding Path=Display}"
Foreground="{Binding Path=IsClashColour}"
FontStyle="{Binding Path=EndDateFontStyle}"/>
<Image Source="/SchoolEdgeTimetable;component/Images/greentick16x16.png"
Margin="5,0,0,0"
Visibility="{Binding Path=IsSpecialitySubjectVisibility}"></Image>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
=== Dies ist der Code ====
if (classInstance.TeacherList.Any(c => c.IsSelected == true && c.IsDefault == false) || instanceCount != defaultCount)
{
System.Windows.Forms.RichTextBox rtf = new System.Windows.Forms.RichTextBox();
foreach (var item in data)
{
if (!item.IsDefault)
{
rtf.SelectionFont = new Font("Arial", 12, System.Drawing.FontStyle.Italic);
rtf.AppendText(item.Display);
}
text = GT.Join2Strings(text, item.IsDefault? item.Display : rtf.Text, "\n");
}
}
else
text = DEFAULT_TEXT;
classInstance.TeachersComboBoxText = text;
ich rtf versucht, weil es scheint, dass ich es nicht in einfachen String anwenden kann, aber der Code funktioniert nicht. Gibt es eine Möglichkeit, dies ohne RTF zu lösen? oder wenn nicht, warum funktioniert mein Code nicht? Jeder kann einen besseren Weg vorschlagen, dies zu tun, wird geschätzt. Danke
UPDATE: Leute schlagen vor, die Schablone zu ändern, die ich bereits tat, das Arbeit groß ist, wenn es die Einzelteile zeigt, wenn eine combobox geöffnet ist. Einer meiner Artikel ist ROT und kursiv, wie Sie sehen können ABER Was ich versuche zu tun, ist jedoch Anzeige der Combobox TEXT-Eigenschaft zu ändern. Ich habe ein Bild angehängt, um besser zu verstehen, was ich meine. dank
aber der Name des Lehrers angehängt werden zusammen in nur eine Zeichenfolge. Bitte sehen Sie meinen Code. Also wird der IsDefault-Trigger nicht mehr funktionieren. Dies ist ein Text und keine Instanz oder ein Objekt. Danke, – user742102