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?

Foi útil?

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:

enter image description here

E para margem de 10 - estes (rótulo tem margem de 3 em ambos os casos):

enter image description here

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top