Wat is die NET Control.Margin eiendom vir?
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?
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:
En vir marge van 10 - hierdie (etiket het marge van 3 in beide gevalle):
As jy 'n paar streng riglyne vir jou dan UI jy net stel die kantlyne as jy beheer sleep om die snaplines nodig en.