O que é a .LÍQUIDA de Controle.A margem de propriedade?
Pergunta
Eu achava que o C# margem propriedade tinha um significado, como em CSS - o espaçamento ao redor e fora do controle.Mas a Margem de valores parecem ser ignoradas para a matéria de que valores eu entrar.
Então eu li sobre o SDK:
Definir a propriedade de Margem em um ancorada controle não tem efeito sobre o distância do controle da bordas de seu recipiente.
Dado que eu estou colocando controles em formulários e, talvez, encaixe-los, o que significa a propriedade Margin me?
Solução
A margem de propriedade é usada por qualquer mecanismo de layout de seu anfitrião de controlo (Painel, por exemplo) está a utilizar, em qualquer forma que o mecanismo de layout vê o ajuste.No entanto, é mais usado para o espaçamento assim como você assumir.Basta ler a documentação para que uma disposição específica do motor.
Ele pode ser muito útil quando estiver a utilizar um FlowLayoutPanel ou TableLayoutPanel, por exemplo -, seja para reduzir o padrão de preenchimento ou o espaço coisas um pouco.Obviamente, se você escrever um layout personalizado provedor, você pode usar a Margem no entanto, você vê o ajuste.
Outras dicas
Como Philip Rieck disse, a margem de propriedade só é respeitado por controlos de contentor que executar o layout.Aqui está um exemplo que torna bastante clara a forma como a TableLayoutPanel
respeita a propriedade Margin:
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);
}
}
}
Eu acredito que a única .NET 2.0 controles internos que relativamente a esta propriedade são FlowLayoutPanel
e TableLayoutPanel
;espero que componentes de terceiros respeitar.Ele tem, basicamente, nenhum efeito em outros cenários.
O controle.A margem de propriedade também pode ser útil em tempo de design, se você não usar o layout do container, mas ao invés de colocar controles manualmente.
Ela afeta a distância entre manualmente arrastado controles em que guias de alinhamento aparecer.
E. g.por padrão, a margem de valor de 3 para a caixa de texto que você gostaria de ter este guias de alinhamento:
E para margem de 10 - estes (rótulo tem margem de 3 em ambos os casos):
Então se você tem algumas diretrizes rígidas para você INTERFACE do usuário, em seguida, você acabou de definir as margens como você precisa e arraste os controles para as linhas de ajuste.