Bold je "samo za čitanje" u VB.NET-u. Ovaj članak govori o tome kako to promijeniti.
U VB6 bilo je lako promijeniti font u podebljan. Jednostavno ste kodirali nešto slično Label1.FontBold, ali u VB.NET-u, svojstvo Bold objekta Font za oznaku je samo za čitanje. Pa kako to promijeniti?
Promjena svojstava fonta u VB.NET-u uz Windows Forms
Evo osnovnog uzorka koda za Windows Forms.
Privatni Sub BoldCheckbox_CheckedChanged (_
ByVal pošiljalac kao sustav. Objekt, _
ByVal e kao sustav. EventArgs) _
Rukuje BoldCheckbox. CheckedChanged
Ako BoldCheckbox. CheckState = CheckState. Provjereno tada
TextToBeBold. Font = _
Novi font (TextToBeBold). Font, FontStyle. bold)
Drugo
TextToBeBold. Font = _
Novi font (TextToBeBold). Font, FontStyle. redovna)
Završi ako
Kraj Sub
Ima puno više od toga Label1.FontBold, to je sigurno. U .NET-u su fontovi nepromjenjivi. To znači da jednom kada su stvorene ne mogu se ažurirati.
VB.NET vam daje veću kontrolu nego što ste dobili s njim VB6 više od onoga što vaš program radi, ali trošak je da morate napisati kod da biste dobili tu kontrolu. VB6 će interno izbaciti jedan resurs GDI fonta i stvoriti novi. S VB.NET-om to morate učiniti sami.
Možete stvari učiniti malo globalnijima dodavanjem globalne deklaracije na vrh obrasca:
Privatni fBold kao novi font ("Arial", FontStyle. bold)
Privatni fNormal kao novi font ("Arial", FontStyle. redovna)
Tada možete kodirati:
TextToBeBold. Font = fBold
Imajte na umu da globalna deklaracija sada određuje obitelj fontova, Arial, umjesto da jednostavno upotrebljava postojeću obitelj fontova jedne određene kontrole.
Korištenje WPF-a
Što je sa WPF-om? WPF je grafički podsustav koji možete koristiti s .NET Framework za izradu aplikacija na kojima je zasnovano korisničko sučelje na XML jeziku pod nazivom XAML i kôd je odvojen od dizajna i temelji se na .NET jeziku kao što je Visual Osnovni, temeljni. U WPF-u Microsoft je postupak opet izmijenio. Evo načina na koji radite istu stvar u WPF-u.
Privatni Sub BoldCheckbox_Checked (_
ByVal pošiljalac kao sustav. Objekt, _
ByVal e kao sustav. Windows. RoutedEventArgs) _
Rukuje BoldCheckbox. provjeren
Ako BoldCheckbox. IsChecked = Istina tada
TextToBeBold. FontWeight = FontWeights. odvažan
Drugo
TextToBeBold. FontWeight = FontWeights. normalan
Završi ako
Kraj Sub
Promjene su:
- CheckBox događaj se provjerava umjesto CheckedChanged
- Svojstvo CheckBox je IsChecked umjesto CheckState
- Vrijednost svojstva je logična vrijednost True / False umjesto Enum CheckState-a. (Windows Forms nudi svojstvo True / False Checked pored CheckState-a, ali WPF nema oba.)
- FontWeight je svojstvo ovisnosti Label, a umjesto FontStyle je vlasništvo objekta Font.
- FontWeights je klasa koja se ne može naslijediti, a Bold je statička vrijednost u toj klasi
Fijuk!! Mislite li da je Microsoft zapravo pokušao to učiniti više zbunjujućim?