FrameworkElement.Margin 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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
큰 여백 값은 개체의 ActualWidth 및 ActualHeight 외부에 있는 공간을 적용합니다.
레이아웃의 피어 개체에 대한 여백은 가산적입니다. 예를 들어 인접한 가장자리에 여백 30
이 설정된 두 개의 가로 또는 세로로 인접한 개체는 둘 사이에 60픽셀의 공간을 갖습니다.
여백이 설정된 개체는 할당된 사각형 공간이 여백과 개체의 콘텐츠 영역에 충분히 크지 않은 경우 일반적으로 지정된 Margin의 크기를 제한하지 않습니다. 레이아웃을 계산할 때 콘텐츠 영역이 대신 제한됩니다. 여백이 제한되는 유일한 경우는 콘텐츠가 이미 0으로 제한된 경우입니다. 그러나 이 동작은 궁극적으로 Margin을 해석하는 특정 형식과 해당 개체의 레이아웃 컨테이너에 의해 제어됩니다.
여백 차원에 대한 음수 값은 허용되지만 주의해서 사용해야 합니다(음수 여백은 다른 클래스 레이아웃 구현에 의해 다르게 해석될 수 있습니다). 음수 여백은 일반적으로 개체의 내용을 해당 방향으로 클리핑합니다.
여백 값에 대한 정수 값이 아닌 값은 기술적으로 허용되지만 일반적으로 피해야 합니다.
여백 및 안쪽 여백
관련 개념은 패딩입니다. 개체 및 경계 상자의 경우 여백은 UI 요소가 포함되고 렌더링될 때 경계 상자 외부에 할당되는 추가 공간입니다. 안쪽 여백은 경계 상자 내의 영역이며 요소 내의 추가 콘텐츠 또는 자식 개체의 레이아웃에 영향을 줍니다.
FrameworkElement 는 패딩 속성을 정의하지 않지만 여러 파생 클래스는 속성을 정의 Padding
합니다. 여기에는 다음이 포함됩니다.
여백과 안쪽 여백 간의 관계에 대한 자세한 내용은 맞춤, 여백 및 안쪽 여백 또는 XAML을 사용하여 레이아웃 정의를 참조하세요.