[C#] Fontstyle uitlezen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een C# applicatie die gebruik maakt van een externe dll.
Heel in het kort: Deze dll produceert tekst
De eerste versie van de applicatie kon niet overweg met Bold, Italic en Underline, terwijl de dll dat wel kon.
Ik ben daarop bezig met het aanpassen van de applicatie. De tekst staat in een XML bestand en daar staan ook de font gegevens.
Inmiddels wordt Bold, Italic en Underline ook in het XML bestand opgeslagen en uitgelezen.

Ik heb mijn methode uitgebreid zodat die nu ook het object System.Drawing.FontStyle als parameter accepteerd.
De functie uit de dll die ik aanroep, heeft 3 extra boolean parameters: isBold, isItalic, isUnderline
Ik wil dus de Fontstyle uitlezen om de kijken of die Bold moet zijn, etc.
Dat krijg ik niet voor elkaar.
De Fontstyle zetten doe ik met |, maar wat is de uitlees manier?

Google leverde niets op, terwijl het toch redelijk eenvoudig en elementair lijkt.
Ik heb het straks ook nodig om de checkboxen voor Bold, Italic & Underline aan en uit te zetten.

Wie schopt me in de juiste richting?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een oplossing gevonden. Kan alleen niet zeggen dat die erg mooi is ;)
Maar werkt wel.
Overigens is het voor VB.NET. Normaal bouw ik in C#, vandaar dat ik C# in de titel heb gezet.
Maar het is redelijk algemene .NET code:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Dim isBold As Boolean = False
Dim isItalic As Boolean = False
Dim isUnderline As Boolean = False
  If FontStyle = Drawing.FontStyle.Bold Then isBold = True
  If FontStyle = Drawing.FontStyle.Italic Then isItalic = True
  If FontStyle = Drawing.FontStyle.Underline Then isUnderline = True
  If FontStyle = Drawing.FontStyle.Bold + Drawing.FontStyle.Italic Then
    isBold = True
    isItalic = True
  End If
  If FontStyle = Drawing.FontStyle.Bold + Drawing.FontStyle.Underline Then
    isBold = True
    isUnderline = True
  End If
  If FontStyle = Drawing.FontStyle.Italic + Drawing.FontStyle.Underline Then
    isItalic = True
    isUnderline = True
  End If
  If FontStyle = Drawing.FontStyle.Bold + Drawing.FontStyle.Italic + Drawing.FontStyle.Underline Then
    isBold = True
    isItalic = True
    isUnderline = True
  End If


Als iemand nog een nettere oplossing weet, hoor ik het graag.

Acties:
  • 0 Henk 'm!

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 10:17

Roomba E5 te koop


Acties:
  • 0 Henk 'm!

Verwijderd

with ^^

C#:
1
2
3
4
public bool IsSet(FontStyle source, FontStyle flags)
{
    return (source & flags) == flags;
}

Dit kan dan op deze manier gebruikt worden om te testen of een bepaalde waarde een italic en bold heeft:
C#:
1
IsSet(waarde, FontStyle.Italic | FontStyle.Bold);