C # / WPF에서 그리드에 테두리를 어떻게 배치합니까?
이것이 내가 원하는 것이지만 응용 프로그램에 넣은 그리드 컨트롤 대신 전체 주위에 테두리를 둡니다.
<Grid>
<Border BorderBrush="Black" BorderThickness="2">
<Grid Height="166" HorizontalAlignment="Left" Margin="12,12,0,0" Name="grid1" VerticalAlignment="Top" Width="479" Background="#FFF2F2F2" />
</Border>
... and so on ...
답변
바깥 쪽 테두리 만 원하는 경우 가장 쉬운 방법은 테두리 컨트롤에 넣는 것입니다.
<Border BorderBrush="Black" BorderThickness="2">
<Grid>
<!-- Grid contents here -->
</Grid>
</Border>
테두리가 컨트롤을 완전히 채우는 것이 보이는 이유는 기본적으로 HorizontalAlignment이고 VerticalAlignment가 Stretch로 설정되어 있기 때문입니다. 다음을 시도하십시오.
<Grid>
<Border HorizontalAlignment="Left" VerticalAlignment="Top" BorderBrush="Black" BorderThickness="2">
<Grid Height="166" HorizontalAlignment="Left" Margin="12,12,0,0" Name="grid1" VerticalAlignment="Top" Width="479" Background="#FFF2F2F2" />
</Border>
</Grid>
이것은 당신이 추구하는 것을 얻을 것입니다 (단지 2가 아닌 4면 모두에 여백을두기를 원할 수도 있지만 …)
답변
경계 컨트롤에 그리드를 중첩하는 경우
<Border>
<Grid>
</Grid>
</Border>
원하는 작업을 수행하지 않는 경우 원하는 작업을 수행하는 그리드 (또는 테두리)에 대한 고유 한 컨트롤 템플릿을 만들어야합니다.
답변
문제는 여백이 그리드가 아닌 테두리 태그에 지정되어야한다는 것입니다.
답변
이것은 나중에 누구에게나 유용 할 수 있다면 나를 위해 작동하는 나중 답변입니다. 그리드의 네면 모두에 간단한 테두리를 원했고 이렇게 달성했습니다.
<DataGrid x:Name="dgDisplay" Margin="5" BorderBrush="#1266a7" BorderThickness="1"...
답변
<Grid x:Name="outerGrid">
<Grid x:Name="innerGrid">
<Border BorderBrush="#FF179AC8" BorderThickness="2" />
<other stuff></other stuff>
<other stuff></other stuff>
</Grid>
</Grid>
이 코드는 “innerGrid”내부에 테두리를 감 쌉니다.
답변
누군가 비슷한 문제에 관심이 있지만 XAML로 작업하지 않는 경우 내 솔루션은 다음과 같습니다.
var B1 = new Border();
B1.BorderBrush = Brushes.Black;
B1.BorderThickness = new Thickness(0, 1, 0, 0); //You can specify here which borders do you want
YourPanel.Children.Add(B1);