Programing

WPF에서 그리드에 테두리를 어떻게 배치합니까?

crosscheck 2020. 8. 3. 17:40
반응형

WPF에서 그리드에 테두리를 어떻게 배치합니까?


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

참고 URL : https://stackoverflow.com/questions/2769291/how-do-i-put-a-border-on-my-grid-in-wpf

반응형