Icon als Button Image skalieren

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Peter329.

    Icon als Button Image skalieren

    Hi,

    ich habe einen Button, mit dem ich eine dgv verkleinere und vergrößere (indem ich Spalten ein und ausblende). Der Button soll ein "kleines schwarzes Dreick" zeigen.

    Ich habe dazu mit einem Icon Editor ein entsprechendes 48 x 48 Icon entworfen und als Image für den Button eingetragen. (s. Anhang)

    Wie man sieht klappt das auch ... aber das Icon ist zu groß für den schmalen Button und wird abgeschnitten.

    Leider kann man im Designer für das Icon nichts weiter eintragen (z.B. Size ist disabled).

    Natürlich kann ich jetzt das Icon neu malen und kleiner machen ... oder den Button breiter machen. Aber das gefällt mir nicht, weil ich damit ja vor dem Problem kapitulieren würde.

    Wie macht man das denn am geschicktesten ? Gibt es Möglichkeiten das Icon in den Button "einzuzoomen" ... ? Oder muss ich das Format des Icons ändern (etwa in .jpg) ?

    Ich bin sicher, irgend jemand weiß wie das geht ! :)

    LG
    Peter
    Bilder
    • s 2017-08-29 08-53-425.jpg

      111,42 kB, 1.234×791, 394 mal angesehen
    Versuche doch mal das Icon als BackgroundImage einzusetzen.
    Da hast du dann auch eine Möglichkeit namens BackgroundImageLayout welche man auf Tile ,Center ,Stretch und Zoom stellen kann.
    Vielleicht hilft dir das ja.

    Edit: Habe es mal Versucht. Ergebnis siehe Screenshot.
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Akanel“ ()

    Das hilft nicht nur "vielleicht" ... die 'Sache funktioniert ganz HERVORRAGEND mit BackgroundImage und Zoom ! Danke !

    Jetzt habe ich noch ein kleines Problem: Das Background Image kann ich nicht fest im Designer zuordnen. Denn ich habe natürlich ZWEI Icons arrowright.ico und arrowleft.ico, die ich der Situation entsprechend während der Verarbeitung abwechseln muss. Ich hab das wie folgt versucht:

    VB.NET-Quellcode

    1. cmdMinMax.BackgroundImage = Image("DataLocker.myResources.Resources.arrowleft.ico")


    Das klappt natürlich nicht, weil Image eine Klasse und keine Funktion ist.

    Natürlich kann ich das Icon als File einlesen:

    VB.NET-Quellcode

    1. cmdMinMax.BackgroundImage = Image.FromFile("C:\.......\Resources\arrowright.ico")


    Aber dann ist meine .exe von dieser Datei während der Laufzeit abhängig. Und das geht nicht, weil die .exe auch auf anderen PCs laufen soll. Ich muss also die .ico files irgendwie in die .exe einbinden.

    Kann mir jemand sagen, wie das richtig gemacht wird ?

    LG
    Peter

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Peter329“ ()

    Das ist ja GENAU das, was ich gesucht hatte ! Danke !

    Die Anwendung sieht jetzt sehr schnuckelig aus. Gefällt mir !

    Schade, dass ich euch beiden nur ein "hilfreich" geben kann! :)

    Problem gelöst ! Daumen hoch ! Und einen schönen Tag !

    LG
    Peter