App.Config (DpiAwareness PerMonitorV2)

  • C#

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von simpelSoft.

    App.Config (DpiAwareness PerMonitorV2)

    Hallo zusammen,

    meine Desktopapplikation braucht eine Einstellung zur korrekten Skalierung, die sich in der App.Config befindet und via VisualStudio erzeugt wurde.
    Liegt diese Konfigurationsdatei am selben Ort des ausführbaren Programms, ist alles in Ordnung.
    Ohne diese Datei geht es nicht.

    Das Ziel ist es, auf diese Datei zu verzichten (nicht auszuliefern), und trotzdem die Konfiguration im Programm selbst vorzunehmen - geht das?
    Im Prinzip wird nur der Key "DpiAwareness" mit dem Wert "PerMonitorV2" hinzugefügt.
    Wie erstelle ich programmatisch diesen Key ohne die externe Konfigurationsdatei?

    Hier der momentane Inhalt der Konfigurationsdatei:

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <configuration>
    3. <startup>
    4. <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/>
    5. </startup>
    6. <System.Windows.Forms.ApplicationConfigurationSection>
    7. <add key="DpiAwareness" value="PerMonitorV2" />
    8. </System.Windows.Forms.ApplicationConfigurationSection>
    9. </configuration>

    Danke fürs Grübeln!
    @simpelSoft Du kannst Deinem Projekt eine app.config hinzufügen unds dort reinschreiben, was nötig ist:
    Projekt => Hinzufügen => Neues Element => Anwendungskonfigurationsdatei

    Feddich
    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!

    RodFromGermany schrieb:

    Du kannst Deinem Projekt eine app.config hinzufügen

    Vielleicht habe ich mich nicht klar genug im Startposting ausgedrückt?
    Ich habe eine App.Config :)

    Und ich möchte diese lästige Datei nicht ausliefern.
    Es muss doch eine Möglichkeit geben, diesen Parameter im Programm selbst zu definieren ...
    @simpelSoft :?:
    Bei mir gehört die app.config zum Projekt und wird beim Compilieren beachtet.
    Ich liefere keine app.config aus, sondern nur die Exe.
    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!

    EaranMaleasi schrieb:


    In .NET Core (ab 3.0) gibt es jedoch Application.SetHighDpiMode(HighDpiMode.PerMonitorV2)

    Ja, das ist mir auch schon aufgefallen / hat gefallen! 8o
    Ich muss mich mit .NET Core wirklich mal beschäftigen.
    Zumindest der Migrationscheck meines kleinen Projekts bescheinigt die komplette Portierbarkeit zu .NET Core.
    Mal gucken ...