Laden...

ResumeLayout ändert meine Eingaben

Erstellt von Jonas007 vor 2 Jahren Letzter Beitrag vor 2 Jahren 336 Views
J
Jonas007 Themenstarter:in
37 Beiträge seit 2020
vor 2 Jahren
ResumeLayout ändert meine Eingaben

Hallo liebe Community.
ich habe ein kleines Windows Forms Projekt, in dem sich eine PictureBox befindet. Ich habe ihr eine größe von 600x600 gegeben, was im Designer auch so umgesetzt wird.


this.pic_Box.Size = new System.Drawing.Size(600, 600);

Diese Größe wird aus meinerseits nicht ersichtlichen Gründen in der Methode "ResumeLayout" verändert.
Gesamte Methode "InitializeComponent":


        private void InitializeComponent()
        {
            this.gb_Settings = new System.Windows.Forms.GroupBox();
            this.pic_Box = new System.Windows.Forms.PictureBox();
            ((System.ComponentModel.ISupportInitialize)(this.pic_Box)).BeginInit();
            this.SuspendLayout();
            // 
            // gb_Settings
            // 
            this.gb_Settings.Location = new System.Drawing.Point(13, 13);
            this.gb_Settings.Name = "gb_Settings";
            this.gb_Settings.Size = new System.Drawing.Size(200, 600);
            this.gb_Settings.TabIndex = 0;
            this.gb_Settings.TabStop = false;
            this.gb_Settings.Text = "Settings";
            // 
            // pic_Box
            // 
            this.pic_Box.Location = new System.Drawing.Point(220, 13);
            this.pic_Box.Name = "pic_Box";
            this.pic_Box.Size = new System.Drawing.Size(600, 600);
            this.pic_Box.TabIndex = 1;
            this.pic_Box.TabStop = false;
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(833, 622);
            this.Controls.Add(this.pic_Box);
            this.Controls.Add(this.gb_Settings);
            this.Name = "Form1";
            this.Text = "RRR Robot Simulation";
            this.Load += new System.EventHandler(this.Form1_Load);
            ((System.ComponentModel.ISupportInitialize)(this.pic_Box)).EndInit();
            this.ResumeLayout(false);

        }

Wie kann ich das unterbinden? Ich möchte die PictureBox einfach mit 600x600!
Danke im vorraus 🙂

J
61 Beiträge seit 2020
vor 2 Jahren

Was ist die DPI-Skalierung deines System? Ich vermute du benutzt eine Einstellung größer als 100%.

J
Jonas007 Themenstarter:in
37 Beiträge seit 2020
vor 2 Jahren

Ich hab das mal gegooglet und wenn es das ist, was ich denke (unter Windows 10 unter Einstellungen/Anzeige/Skalierung und Anordnung) sind bei mir standartmäßig 125% eingestellt, und bei der Auswahl 125% steht auch "(empfohlen)" dabei. Wenn ich das auf 100% ändere, ändert es jedoch nichts. Die Größe der PictureBox wird nachwievor von 600x600 auf 450x488 gesetzt.

J
61 Beiträge seit 2020
vor 2 Jahren

Versuche mal den AutoScaleMode auf DPI zu setzen, wenn du den Designer benutzt.

J
Jonas007 Themenstarter:in
37 Beiträge seit 2020
vor 2 Jahren

Problem gelöst. Danke dir 🙂!
Der AutoScaleMode der Form war standartmäßig auf Font. Wenn er auf DPI gestellt ist, funktioniert alles wie gewünscht 🙂

Edit: Die Größe der PictureBox wird trotzdem noch verändert: nämlich von 600x600 auf 480x480, eben die das 1/1.25 - fache, da meine Skalierung ja auf 125% ist. Das passt jedoch, da es mir nur um das Verhältnis der beiden Längen ging.
Ich verstehe zwar noch immer nicht, weshalb die box so skaliert wurde, aber egal ^^

J
61 Beiträge seit 2020
vor 2 Jahren

Edit: Die Größe der PictureBox wird trotzdem noch verändert: nämlich von 600x600 auf 480x480, eben die das 1/1.25 - fache, da meine Skalierung ja auf 125% ist. Das passt jedoch, da es mir nur um das Verhältnis der beiden Längen ging.
Ich verstehe zwar noch immer nicht, weshalb die box so skaliert wurde, aber egal ^^

Du musst deine Anwendung als „DPI-aware“ deklarieren. Ansonsten wird sie für 96DPI erzeugt und von Windows skaliert. Dadurch wirken Anwendungen bei einer hohen Skalierung verschwommen.
Setting the default DPI awareness for a process (Windows) - Win32 apps