FrameworkElement.Margin 속성

정의

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"/>
 

속성 값

개체에 대한 여백 값을 제공합니다. 기본값은 모든 속성(차원)이 0과 같은 기본 두께 입니다.

예제

이 예제에서는 런타임에 UI 요소를 만든 다음 다양한 레이아웃 관련 속성을 설정하는 더 큰 시나리오의 일부로 코드를 설정합니다 Margin . 기존 XAML UI 페이지의 개체 트리에 새 요소를 추가하기 전에 이 작업을 수행하는 경우가 많습니다. 이 경우 Uniform-value 생성자를 사용하여 만든 새 Thickness 를 사용하여 여러 Margin 속성이 설정됩니다.

    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);
    }
}

설명

여백 동작 및 레이아웃

보다 0 큰 여백 값은 개체의 ActualWidthActualHeight 외부에 있는 공간을 적용합니다.

레이아웃의 피어 개체에 대한 여백은 가산적입니다. 예를 들어 인접한 가장자리에 여백 30 이 설정된 두 개의 가로 또는 세로로 인접한 개체는 둘 사이에 60픽셀의 공간을 갖습니다.

여백이 설정된 개체는 할당된 사각형 공간이 여백과 개체의 콘텐츠 영역에 충분히 크지 않은 경우 일반적으로 지정된 Margin의 크기를 제한하지 않습니다. 레이아웃을 계산할 때 콘텐츠 영역이 대신 제한됩니다. 여백이 제한되는 유일한 경우는 콘텐츠가 이미 0으로 제한된 경우입니다. 그러나 이 동작은 궁극적으로 Margin을 해석하는 특정 형식과 해당 개체의 레이아웃 컨테이너에 의해 제어됩니다.

여백 차원에 대한 음수 값은 허용되지만 주의해서 사용해야 합니다(음수 여백은 다른 클래스 레이아웃 구현에 의해 다르게 해석될 수 있습니다). 음수 여백은 일반적으로 개체의 내용을 해당 방향으로 클리핑합니다.

여백 값에 대한 정수 값이 아닌 값은 기술적으로 허용되지만 일반적으로 피해야 합니다.

여백 및 안쪽 여백

관련 개념은 패딩입니다. 개체 및 경계 상자의 경우 여백은 UI 요소가 포함되고 렌더링될 때 경계 상자 외부에 할당되는 추가 공간입니다. 안쪽 여백은 경계 상자 내의 영역이며 요소 내의 추가 콘텐츠 또는 자식 개체의 레이아웃에 영향을 줍니다. FrameworkElement 는 패딩 속성을 정의하지 않지만 여러 파생 클래스는 속성을 정의 Padding 합니다. 여기에는 다음이 포함됩니다.

여백과 안쪽 여백 간의 관계에 대한 자세한 내용은 맞춤, 여백 및 안쪽 여백 또는 XAML을 사용하여 레이아웃 정의를 참조하세요.

적용 대상

추가 정보