FrameworkElement.Margin Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece el margen externo de frameworkElement.
public:
property Thickness Margin { Thickness get(); void set(Thickness value); };
Thickness Margin();
void Margin(Thickness value);
public Thickness Margin { get; set; }
var thickness = frameworkElement.margin;
frameworkElement.margin = thickness;
Public Property Margin As Thickness
<frameworkElement Margin="uniform"/>
- or -
<frameworkElement Margin="left+right,top+bottom"/>
- or -
<frameworkElement Margin="left,top,right,bottom"/>
Valor de propiedad
Proporciona valores de margen para el objeto . El valor predeterminado es un grosor predeterminado con todas las propiedades (dimensiones) igual a 0.
Ejemplos
En este ejemplo se establece Margin en el código como parte de un escenario mayor de creación de un elemento de interfaz de usuario en tiempo de ejecución y, a continuación, se establecen varias propiedades relacionadas con el diseño. Esto suele hacerse antes de agregar un nuevo elemento al árbol de objetos de una página de interfaz de usuario XAML existente. En este caso, se establecen varias propiedades Margin mediante un nuevo grosor creado con el constructor de valores uniformes.
public Page()
{
InitializeComponent();
LayoutDesign();
}
private void LayoutDesign()
{
//Create Stackpanel for ListBox Control and its description
StackPanel DeptStackPanel = new StackPanel();
DeptStackPanel.Margin = new Thickness(10);
LayoutRoot.Children.Add(DeptStackPanel);
Grid.SetColumn(DeptStackPanel, 1);
Grid.SetRow(DeptStackPanel, 1);
TextBlock DeptListHeading = new TextBlock();
DeptListHeading.Text = "Department";
ListBox DeptList = new ListBox();
DeptList.Items.Add("Finance");
DeptList.Items.Add("Marketing");
DeptList.Items.Add("Human Resources");
DeptList.Items.Add("Payroll");
DeptStackPanel.Children.Add(DeptListHeading);
DeptStackPanel.Children.Add(DeptList);
//Create StackPanel for buttons
StackPanel ButtonsStackPanel = new StackPanel();
ButtonsStackPanel.Margin = new Thickness(10);
ButtonsStackPanel.Orientation = Orientation.Horizontal;
ButtonsStackPanel.HorizontalAlignment = HorizontalAlignment.Center;
LayoutRoot.Children.Add(ButtonsStackPanel);
Grid.SetColumn(ButtonsStackPanel, 0);
Grid.SetRow(ButtonsStackPanel, 2);
Grid.SetColumnSpan(ButtonsStackPanel, 2);
Button BackButton = new Button();
BackButton.Content = "Back";
BackButton.Width = 100;
Button CancelButton = new Button();
CancelButton.Content = "Cancel";
CancelButton.Width = 100;
Button NextButton = new Button();
NextButton.Content = "Next";
NextButton.Width = 100;
ButtonsStackPanel.Children.Add(BackButton);
ButtonsStackPanel.Children.Add(CancelButton);
ButtonsStackPanel.Children.Add(NextButton);
BackButton.Margin = new Thickness(10);
CancelButton.Margin = new Thickness(10);
NextButton.Margin = new Thickness(10);
}
}
Comentarios
Comportamiento y diseño del margen
Un valor de margen mayor que 0 aplica espacio fuera de ActualWidth y ActualHeight del objeto.
Los márgenes son aditivos para objetos del mismo nivel en un diseño; por ejemplo, dos objetos adyacentes horizontal o verticalmente ambos con un margen de 30 establecido en el borde adyacente tendría 60 píxeles de espacio entre ellos.
Los objetos que tienen márgenes establecidos no normalmente restringirán el tamaño del margen especificado si el espacio asignado del rectángulo no es lo suficientemente grande para el margen más el área de contenido del objeto. El área de contenido se restringirá en su lugar cuando se calcule el diseño. El único caso en el que los márgenes se restringirían también es si el contenido ya está restringido hasta cero. Sin embargo, este comportamiento se controla en última instancia mediante el tipo específico que interpreta Margin, así como el contenedor de diseño de ese objeto.
Se permiten valores negativos para las dimensiones de margen, pero debe usarse con precaución (y tenga en cuenta que los márgenes negativos se pueden interpretar de forma diferente por diferentes implementaciones de diseño de clase). Los márgenes negativos suelen recortar el contenido del objeto en esa dirección.
Los valores no enteros para los valores de margen se permiten técnicamente, pero normalmente se deben evitar.
Margen y relleno
Un concepto relacionado es relleno. Para un objeto y su rectángulo de límite, el margen es espacio adicional que se asigna al exterior del cuadro de límite cuando el elemento de la interfaz de usuario está contenido y representado. El relleno es el área dentro del cuadro de límite y afecta al diseño de cualquier contenido adicional o objetos secundarios dentro del elemento.
FrameworkElement no define una propiedad de relleno; sin embargo, varias clases derivadas definen una Padding propiedad . Entre ellas se incluyen las siguientes:
Para obtener más información sobre la relación entre el margen y el relleno, consulta Alineación, margen y relleno o Definir diseños con XAML.