Compartilhar via


Block.Margin Propriedade

Definição

Obtém ou define a espessura da margem do elemento.

public:
 property System::Windows::Thickness Margin { System::Windows::Thickness get(); void set(System::Windows::Thickness value); };
public System.Windows.Thickness Margin { get; set; }
member this.Margin : System.Windows.Thickness with get, set
Public Property Margin As Thickness

Valor da propriedade

Thickness

Uma estrutura Thickness que especifica a quantidade de margem a ser aplicada, em pixels independentes de dispositivo. O padrão é uma espessura uniforme de zero (0,0).

Exemplos

O exemplo a seguir mostra como definir o Margin atributo de um Block elemento (Paragraph).

<FlowDocument Background="LightSlateGray" ColumnWidth="2000">
  <Section Background="DarkMagenta" Margin="0" Padding="0">
    <Paragraph Background="White">
      <Run>Default paragraph.</Run>
    </Paragraph>
    <Paragraph Background="White">
      <Run>Default paragraph.</Run>
    </Paragraph>
    <Paragraph Background="LightBlue" Margin="50">
      <Run>This paragraph has a magin of 50 pixels set, but no padding.</Run>
    </Paragraph>
    <Paragraph Background="LightCoral" Padding="50">
      <Run>This paragraph has padding of 50 pixels set, but no margin.</Run>
    </Paragraph>
    <Paragraph Background="LightGreen" Margin="50" Padding="50">
      <Run>This paragraph has both padding and margin set to 50 pixels.</Run>
    </Paragraph>
    <Paragraph Background="White">
      <Run>Default paragraph.</Run>
    </Paragraph>
    <Paragraph Background="White">
      <Run>Default paragraph.</Run>
    </Paragraph>
  </Section>
</FlowDocument>

A figura a seguir mostra como o exemplo anterior é renderizado. Espessuras e cores exageradas são usadas para ilustração.

Captura de tela: Parágrafos com preenchimento e margens

O exemplo a seguir mostra como definir a Margin propriedade programaticamente.

FlowDocument flowDoc = new FlowDocument();
Section sec = new Section();

flowDoc.Background = Brushes.LightSlateGray;
flowDoc.ColumnWidth = 2000;
sec.Background = Brushes.DarkMagenta;
sec.Padding = sec.Margin = new Thickness(0);

Paragraph defPar1 = new Paragraph(new Run("Default paragraph."));
Paragraph defPar2 = new Paragraph(new Run("Default paragraph."));
Paragraph defPar3 = new Paragraph(new Run("Default paragraph."));
Paragraph defPar4 = new Paragraph(new Run("Default paragraph."));
defPar1.Background = defPar2.Background = defPar3.Background = defPar4.Background = Brushes.White;

Paragraph marginPar = new Paragraph(new Run("This paragraph has a magin of 50 pixels set, but no padding."));
marginPar.Background = Brushes.LightBlue;
marginPar.Margin = new Thickness(50);
Paragraph paddingPar = new Paragraph(new Run("This paragraph has padding of 50 pixels set, but no margin."));
paddingPar.Background = Brushes.LightCoral;
paddingPar.Padding = new Thickness(50);
Paragraph marginPaddingPar = new Paragraph(new Run("This paragraph has both padding and margin set to 50 pixels."));
marginPaddingPar.Background = Brushes.LightGreen;
marginPaddingPar.Padding = marginPaddingPar.Margin = new Thickness(50);

sec.Blocks.Add(defPar1);
sec.Blocks.Add(defPar2);
sec.Blocks.Add(marginPar);
sec.Blocks.Add(paddingPar);
sec.Blocks.Add(marginPaddingPar);
sec.Blocks.Add(defPar3);
sec.Blocks.Add(defPar4);
flowDoc.Blocks.Add(sec);
Dim flowDoc As New FlowDocument()
Dim sec As New Section()

flowDoc.Background = Brushes.LightSlateGray
flowDoc.ColumnWidth = 2000
sec.Background = Brushes.DarkMagenta
sec.Margin = New Thickness(0)
sec.Padding = sec.Margin

Dim defPar1 As New Paragraph(New Run("Default paragraph."))
Dim defPar2 As New Paragraph(New Run("Default paragraph."))
Dim defPar3 As New Paragraph(New Run("Default paragraph."))
Dim defPar4 As New Paragraph(New Run("Default paragraph."))
defPar4.Background = Brushes.White
defPar3.Background = defPar4.Background
defPar2.Background = defPar3.Background
defPar1.Background = defPar2.Background

Dim marginPar As New Paragraph(New Run("This paragraph has a magin of 50 pixels set, but no padding."))
marginPar.Background = Brushes.LightBlue
marginPar.Margin = New Thickness(50)
Dim paddingPar As New Paragraph(New Run("This paragraph has padding of 50 pixels set, but no margin."))
paddingPar.Background = Brushes.LightCoral
paddingPar.Padding = New Thickness(50)
Dim marginPaddingPar As New Paragraph(New Run("This paragraph has both padding and margin set to 50 pixels."))
With marginPaddingPar
    .Background = Brushes.LightGreen
    .Margin = New Thickness(50)
    .Padding = marginPaddingPar.Margin
End With

sec.Blocks.Add(defPar1)
sec.Blocks.Add(defPar2)
sec.Blocks.Add(marginPar)
sec.Blocks.Add(paddingPar)
sec.Blocks.Add(marginPaddingPar)
sec.Blocks.Add(defPar3)
sec.Blocks.Add(defPar4)
flowDoc.Blocks.Add(sec)

Comentários

Margin é o espaço de buffer que fica fora da área de conteúdo de um elemento, entre as bordas da área de conteúdo do elemento e as bordas do elemento pai. Contraste com Padding, que é o espaço de buffer que cai dentro da área de conteúdo de um elemento, entre o conteúdo do elemento e a borda interna do elemento.

Uso do Atributo XAML

<object Margin="uniformThickness"/>  
- or -  
<object Margin="independentThickness"/>  
- or -  
<object Margin="qualifiedUniformThickness"/>  
- or -  
<object Margin="qualifiedIndependentThickness"/>  

Valores XAML

uniformThickness
Representação de cadeia de caracteres de um único Double valor a ser aplicado uniformemente a todas as quatro dimensões de espessura. Por exemplo, um valor é "10" equivalente a um valor de "10,10,10,10". Um valor não qualificado é medido em pixels independentes do dispositivo. As cadeias de caracteres não precisam incluir explicitamente pontos decimais.

independentThickness
Representação de cadeia de caracteres de quatro valores ordenados Double correspondentes a dimensões de espessura independentes para esquerda, superior, direita e inferior, nesta ordem. Os quatro valores devem ser separados com vírgulas; espaços não são permitidos. Por exemplo, "5,10,15,20" resulta em 5 pixels de margem à esquerda do conteúdo, 10 pixels de margem acima do conteúdo, 15 pixels de margem à direita do conteúdo e 20 pixels de margem abaixo do conteúdo.

qualifiedUniformThickness
Um valor descrito por uniformThickness seguido por um dos seguintes especificadores de unidade: px, in.

px (padrão) são unidades independentes do dispositivo (1/96 polegada por unidade)

in é polegadas; 1in==96px

Por exemplo, "1in" fornece uma margem uniforme de 1 polegada em todas as direções.

qualifiedIndependentThickness
Um valor descrito por independentThickness, com cada valor independente seguido por um dos seguintes especificadores de unidade: px, in.

px (padrão) são unidades independentes do dispositivo (1/96 polegada por unidade)

in é polegadas; 1in==96px

Por exemplo, "1.5in,0.8in,1.5in,0.8in". Os especificadores de unidade podem ser misturados ou omitidos de um ou mais valores.

Informações da propriedade de dependência

Campo Identificador MarginProperty
Propriedades de metadados definidas como true AffectsMeasure

Aplica-se a

Confira também