vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Textbox in PictureViewer coden 
Autor: Manfred X
Datum: 20.03.15 19:18

Hallo!

Nein!
Du sollst nicht die Textbox positionieren,
sondern direkt den Text, den die Textbox aktuell enthält, auf die transparente Image-Fläche zeichnen.
Das Problem kann dabei der Bildhintergrund sein, vor dem der Text wegen mangelndem
Kontrast nicht (bequem) lesbar ist.

Mein Vorschlag dazu wäre, Helligkeit und Kontrast des Text-Hintergrundes zu modifizieren.

Etwa so .... (erweitertes Paint-Event-Handling):
Private Sub pb_Paint(sender As Object, _
        e As System.Windows.Forms.PaintEventArgs) Handles pb.Paint
 
        Dim brt As Single = 0.2 'Helligkeit im Texthintergrund erhöhen
        Dim ctr As Single = 1.1 'Kontrast erhöhen
 
        Dim cm As Imaging.ColorMatrix = _
               New Imaging.ColorMatrix(New Single()() _
               {New Single() {ctr, 0.0, 0.0, 0.0, 0.0}, _
                New Single() {0.0, ctr, 0.0, 0.0, 0.0}, _
                New Single() {0.0, 0.0, ctr, 0.0, 0.0}, _
                New Single() {0.0, 0.0, 0.0, 1.0, 0.0}, _
                New Single() {brt, brt, brt, 0, 1.0}})
 
        Dim ia As New Imaging.ImageAttributes
        ia.SetColorMatrix(cm)
 
        Using br As New SolidBrush(tb.ForeColor)
            With e.Graphics
                'Texthintergrund zeichnen
                Dim rect As New RectangleF _
                       (textposition, .MeasureString(tb.Text, tb.Font, _
                       tb.Width))
                .DrawImage(bmp_picture, _
                       RectangleToPoints(rect), rect, GraphicsUnit.Pixel, ia)
 
                .DrawString(tb.Text, tb.Font, br, textposition)
            End With
 
        End Using
 
    End Sub
 
 
    Private Function RectangleToPoints(ByVal rect As RectangleF) As PointF()
        'Points-Parameter aus Rectangle berechnen
        Dim points(2) As PointF
        With rect
            points(0) = .Location
            points(1) = New PointF(.Location.X + .Width, .Location.Y)
            points(2) = New PointF(.Location.X, .Location.Y + .Height)
        End With
        Return points
    End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Textbox in PictureViewer coden1.629Bazi19.03.15 22:08
Re: Textbox in PictureViewer coden1.080Manfred X20.03.15 09:27
Re: Textbox in PictureViewer coden964Bazi20.03.15 15:16
Re: Textbox in PictureViewer coden995Manfred X20.03.15 17:52
Re: Textbox in PictureViewer coden1.027Bazi20.03.15 18:30
Re: Textbox in PictureViewer coden982Manfred X20.03.15 19:18
Re: Textbox in PictureViewer coden1.010Bazi20.03.15 19:44
Re: Textbox in PictureViewer coden976Manfred X20.03.15 19:58
Re: Textbox in PictureViewer coden990Bazi20.03.15 20:07
Re: Textbox in PictureViewer coden976Manfred X20.03.15 21:03
Re: Textbox in PictureViewer coden1.008Bazi20.03.15 21:54
Re: Textbox in PictureViewer coden975Kuno6021.03.15 09:18
Re: Textbox in PictureViewer coden981Bazi21.03.15 12:08
Picturebox als Textbox1.011Manfred X21.03.15 13:36
Re: Picturebox als Textbox1.040Bazi21.03.15 16:36
Re: Picturebox als Textbox989Manfred X21.03.15 16:53
Re: Picturebox als Textbox1.001Bazi21.03.15 17:12
Re: Picturebox als Textbox968Manfred X22.03.15 12:48
Re: Textbox in PictureViewer coden1.020Manfred X21.03.15 10:46
Re: Textbox in PictureViewer coden976Bazi21.03.15 12:09

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel