Fett ist in VB.NET "schreibgeschützt". In diesem Artikel erfahren Sie, wie Sie dies ändern können.
In VB6 war es kinderleicht, eine Schriftart in Fettdruck zu ändern. Sie haben einfach so etwas codiert Label1.FontBoldIn VB.NET ist die Bold-Eigenschaft des Font-Objekts für ein Label schreibgeschützt. Wie ändern Sie es?
Ändern der Schrifteigenschaften in VB.NET mit Windows Forms
Hier ist das grundlegende Codemuster für Windows Forms.
Private Sub BoldCheckbox_CheckedChanged (_
ByVal-Absender als System. Objekt, _
ByVal e As System. EventArgs) _
Behandelt BoldCheckbox. CheckedChanged
Wenn BoldCheckbox. CheckState = CheckState. Dann überprüft
TextToBeBold. Schriftart = _
Neue Schriftart (TextToBeBold. Schriftart, FontStyle. Fett gedruckt)
Sonst
TextToBeBold. Schriftart = _
Neue Schriftart (TextToBeBold. Schriftart, FontStyle. Regulär)
End If
End Sub
Es gibt viel mehr als Label1.FontBold, das ist sicher. In .NET sind Schriftarten unveränderlich. Das heißt, sobald sie erstellt wurden, können sie nicht mehr aktualisiert werden.
Mit VB.NET haben Sie mehr Kontrolle als mit VB6 über das, was Ihr Programm tut, aber die Kosten sind, dass Sie den Code schreiben müssen, um diese Kontrolle zu erhalten. VB6 löscht intern eine GDI-Schriftartressource und erstellt eine neue. Mit VB.NET müssen Sie es selbst tun.
Sie können die Dinge etwas globaler gestalten, indem Sie oben in Ihrem Formular eine globale Deklaration hinzufügen:
Private fBold As New Font ("Arial", FontStyle. Fett gedruckt)
Private fNormal As New Font ("Arial", FontStyle. Regulär)
Dann können Sie codieren:
TextToBeBold. Schriftart = fBold
Beachten Sie, dass die globale Deklaration jetzt die Schriftfamilie Arial angibt, anstatt einfach die vorhandene Schriftfamilie eines bestimmten Steuerelements zu verwenden.
Verwenden von WPF
Was ist mit WPF? WPF ist ein grafisches Subsystem, das Sie mit .NET Framework verwenden können, um Anwendungen zu erstellen, auf denen die Benutzeroberfläche basiert in einer XML-Sprache namens XAML und der Code ist vom Design getrennt und basiert auf einer .NET-Sprache wie Visual Basic. In WPF hat Microsoft den Prozess erneut geändert. So machen Sie dasselbe in WPF.
Private Sub BoldCheckbox_Checked (_
ByVal-Absender als System. Objekt, _
ByVal e As System. Windows. RoutedEventArgs) _
Behandelt BoldCheckbox. Überprüft
Wenn BoldCheckbox. IsChecked = True Then
TextToBeBold. FontWeight = FontWeights. Fett gedruckt
Sonst
TextToBeBold. FontWeight = FontWeights. Normal
End If
End Sub
Die Änderungen sind:
- Das CheckBox-Ereignis ist Checked anstelle von CheckedChanged
- Die CheckBox-Eigenschaft lautet IsChecked anstelle von CheckState
- Der Eigenschaftswert ist ein boolesches True / False anstelle des Enum CheckState. (Windows Forms bietet zusätzlich zu CheckState eine True / False Checked-Eigenschaft, WPF verfügt jedoch nicht über beide.)
- FontWeight ist eine Abhängigkeitseigenschaft des Labels, anstatt dass FontStyle die Eigenschaft des Font-Objekts ist.
- FontWeights ist eine NotInheritable-Klasse und Bold ist ein statischer Wert in dieser Klasse
Wütend!! Denken Sie, Microsoft hat tatsächlich versucht, es verwirrender zu machen?