Vraag Equivalent van Swing's pack in C #


Ik ben bezig met het ontwikkelen van een snelle app in C #. Een ding dat ik wil doen is het equivalent van Swing's (java) pack(). Dit is een oproep die me in staat stelt om een ​​vorm te zeggen (Frame in Java), het formaat van jezelf aan te passen aan de grootte van de som van de componenten in jezelf.

Ik heb gezocht en gezocht (de componenten veranderen dynamisch, dus ik kan het formulier niet eenvoudigweg naar de juiste grootte coderen) maar ik kan de equivalente methode niet vinden in C #.

Weet iemand hoe het wordt genoemd?


10
2017-07-16 18:24


oorsprong


antwoorden:


U hebt zelfs geen code nodig om het formulier te 'inpakken'. Stel de formulieren in in de vormontwerper AutoSize eigendom aan true, en stel de AutoSizeMode eigendom aan GrowAndShrink, herhaal dit voor alle bedieningselementen op het formulier die ook van grootte kunnen veranderen.

En voila!

Tijdens runtime (alleen), zal het formulier zichzelf dynamisch aanpassen om geschikt te zijn voor alle bedieningselementen. Als u wilt dat het een beetje afstand houdt van de bedieningselementen, zodat de bedieningsknoppen niet aan de randen blijven 'plakken', kunt u de Padding eigendom (ik zou minstens een waarde van 12,12,12,12 aanbevelen).


11
2017-08-19 09:13



Ook in xaml:

<Window SizeToContent="WidthAndHeight" />

2
2018-06-16 15:44



Een andere oplossing, alleen beschikbaar als de afbeelding kleiner is dan het scherm:

Form frm = new Form();
PictureBox pbx = new PictureBox();
pbx.Image = Image.FromFile( _imagePath.Text );
pbx.Dock  = DockStyle.Fill;
frm.Controls.Add( pbx );
frm.Size = pbx.Image.Size;
frm.Show();

0
2017-11-24 09:30