Alte Programme, verkleinerte Hintergründe?

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Artentus.

    Alte Programme, verkleinerte Hintergründe?

    Nachdem ich neulich meine alten Programme aus vb .NET 2003 und .NET 2008 Zeiten durchgegangen bin, stieß ich auf einige Merkwürdigkeiten.
    1. "keine Win32-Anwendung". Offensichtlich hatte ich in 32-bit programmiert und Express benutzt.
      Das Problem wurde behoben durch das ändern der .vbproj-Datei mit dem Zusatz von
      <PlatformTarget>x86</PlatformTarget>

      Am Ende von PropertyGroup.
    2. Alle Hintergrund-Bilder werden kleiner angezeigt! Vermutlich hängt das mit dem Lesbarkeits-feature von Win7 etc zusammen, dass Hintergrundbilder, die vorher passgenau waren, nun gekachelt erscheinen (habe 125% ausgewählt). Wenn Stretch benutzt wurde, tritt das Problem natürlich nicht auf... Trotzdem scheint die Lesbarkeit auch die Breite der Pixel irgendwie zu beeinflussen... und zwar nur die der Anwendung, nicht die der Bilder...
    3. Im Zusammenhang mit 2. tritt wohl auch auf, dass häufig buttons am unteren/rechten Rand verschwinden (Form zu klein, Elemente zu groß?). Könnte man über Anchors beheben.
    Gibt es eine einfache Möglichkeit, die Programme wieder normal funktionierend werden zu lassen? oder muss ich alle Elemente auf gestreckte-Hintergründe stellen, überall die vbproj-Datei ändern und Anchors statt Positionsangaben benutzen?
    @Dediggefedde Hast Du Dir einen neuen Monitor zugelegt mit wesentlich mehr Pixeln?
    Hat Dein neuer Rechner eine andere DPI-Einstellung?
    Ansonsten musst Du ein wenig rumfriemeln.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Mag sein, dass meine Auflösung gestiegen ist.

    Allerdings nahm ich bislang an, dass wenn ich einstelle:
    Form-width: 300px
    button-left: 250px
    button-width: 40px
    dass dann der Button nicht über die Form herausragt^^
    Und zwar unabhängig von der Auflösung und dem Betriebssystem. und genau das scheint ja der Fall zu sein.

    bzw. Wegen dem Background:
    Panel-width: 400px
    background-image-width: 400px
    background-stretch: tile
    -> gute 50 px am rechten Rand des Panels wiederholt sich das Bild^^

    Früher hat's geklappt... nur jetzt mit Win7 statt WinXP und alles größer/aktueller etc. macht es jetzt Unsinn...
    Ich würde es auch anpassen, aber was, wenn das nicht an Win liegt, sondern an den Bit-Varianten, der Lesbarkeitsvergrößerung oder sonst irgendwas?^^

    Sonst muss man sich wohl angewöhnen mit Anchors und Abständen zu arbeiten und im quellcode auf Größenänderung für konstante Abstände sorgen, damit sich nichts überdeckt...
    Das sind ganz typische Probleme für WinForms. Alles hält sich an physikalische Pixel - außer Text und Bilder, die werden in Punkten berechnet. Deswegen wird das Layout, sobald die DPI-Einstellungen vom Standard abweichen, komplett zerstört. Einzige Möglichkeit, das zu verhindern, ist, nur Container zu verwenden, die automatisch Layouten.
    Zusätzlich werde ich wohl alle Hintergründe auf stretch stellen müssen, oder?
    Die von dir erwähnten Elemente scheinen lediglich die relative Position innerhalb der Form sicherzustellen, nicht aber das Verhältnis von Punkten zu physik. Pixeln, oder?

    Gibt es denn eine bessere Methode, Hintergrundbilder einzubinden, damit diese passend bleiben und gleichzeitig nicht durch stretching verwaschen?

    Dediggefedde schrieb:

    nicht aber das Verhältnis von Punkten zu physik. Pixeln
    Ne, das können sie in der Tat nicht. Reicht aber, damit sich Controls nicht mehr verschieben.
    Bei den Bildern musst du mal schaun, wie halt am besten aussieht, es gibt z.B. auch noch Zoom.