Vra

Ek aanvaar dat die C # marge eiendom het 'n betekenis soos in CSS - die spasiëring om die buitekant van die beheer. Maar Marge waardes blyk te wees geïgnoreer saak watter waardes ek ingaan.

Toe lees ek op die SDK:

  

Die opstel van die eiendom marge op 'n   vasgemeer beheer het geen effek op die   afstand van die beheer van die die   kante van die houer.

Gegewe dat ek beheer te plaas op vorms, en miskien docking hulle wat nie die eiendom Marge kry my?

Was dit nuttig?

Oplossing

Die eiendom marge word deur wat ookal uitleg enjin jou beheer gasheer (paneel, byvoorbeeld) is die gebruik van, in watter manier waarop uitleg enjin goeddink. Dit is egter die beste gebruik vir spasiëring net as jy aanneem. lees net die dokumentasie vir daardie spesifieke uitleg enjin.

Dit kan baie handig wees wanneer die gebruik van 'n FlowLayoutPanel of TableLayoutPanel, byvoorbeeld - om óf 'n bietjie verminder die verstek padding of ruimte dinge uit. Dit is duidelik dat, as jy 'n persoonlike uitleg verskaffer skryf, kan jy Marge gebruik egter jy goeddink.

Ander wenke

Soos Philip Rieck gesê, is die eiendom marge net gerespekteer deur houer kontroles wat uitleg te voer. Hier is 'n voorbeeld dat dit redelik duidelik maak hoe die TableLayoutPanel respekteer die kantlyn eiendom:

using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            TableLayoutPanel pnl = new TableLayoutPanel();
            pnl.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50));
            pnl.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50));
            pnl.Dock = DockStyle.Fill;
            this.Controls.Add(pnl);

            Button btn1 = new Button();
            btn1.Text = "No margin";
            btn1.Dock = DockStyle.Fill;

            Button btn2 = new Button();
            btn2.Margin = new Padding(25);
            btn2.Text = "Margin";
            btn2.Dock = DockStyle.Fill;

            pnl.Controls.Add(btn1, 0, 0);
            pnl.Controls.Add(btn2, 1, 0);
        }
    }
}

Ek glo die enigste NET 2.0 ingeboude kontroles wat hierdie eiendom respekteer is FlowLayoutPanel en TableLayoutPanel; hopelik derde party komponente respekteer dit so goed. Dit het basies geen effek op ander scenario's.

Control.Margin eiendom kan ook nuttig by die ontwerp tyd wees as jy nie uitleg houer gebruik, maar kontrole eerder met die hand te plaas.

Dit raak die afstand tussen die hand gesleep beheer waarteen snaplines verskyn .

Bv. vir standaard marge waarde van 3 vir teks boks wat jy wil hê hierdie snaplines:

 betree beeld beskrywing hier

En vir marge van 10 - hierdie (etiket het marge van 3 in beide gevalle):

 betree beeld beskrywing hier

As jy 'n paar streng riglyne vir jou dan UI jy net stel die kantlyne as jy beheer sleep om die snaplines nodig en.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top