How do i put a border on my grid in WPF?

前端 未结 6 467
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-02 17:54

How do i put a border on my grid in C#/WPF?

This is what i would like it to be, but puts a border around the whole thing instead of the grid control i put in my appl

相关标签:
6条回答
  • 2020-12-02 18:21

    I think your problem is that the margin should be specified in the border tag and not in the grid.

    0 讨论(0)
  • 2020-12-02 18:23

    This is a later answer that works for me, if it may be of use to anyone in the future. I wanted a simple border around all four sides of the grid and I achieved it like so...

    <DataGrid x:Name="dgDisplay" Margin="5" BorderBrush="#1266a7" BorderThickness="1"...
    
    0 讨论(0)
  • 2020-12-02 18:29
    <Grid x:Name="outerGrid">
        <Grid x:Name="innerGrid">
            <Border BorderBrush="#FF179AC8" BorderThickness="2" />
            <other stuff></other stuff>
            <other stuff></other stuff>
        </Grid>
    </Grid>
    

    This code Wrap a border inside the "innerGrid"

    0 讨论(0)
  • 2020-12-02 18:33

    If you just want an outer border, the easiest way is to put it in a Border control:

    <Border BorderBrush="Black" BorderThickness="2">
        <Grid>
           <!-- Grid contents here -->
        </Grid>
    </Border>
    

    The reason you're seeing the border completely fill your control is that, by default, it's HorizontalAlignment and VerticalAlignment are set to Stretch. Try the following:

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

    This should get you what you're after (though you may want to put a margin on all 4 sides, not just 2...)

    0 讨论(0)
  • 2020-12-02 18:35

    If someone is interested in the similar problem, but is not working with XAML, here's my solution:

    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);
    
    0 讨论(0)
  • 2020-12-02 18:41

    If nesting your grid in a border control

    <Border>
        <Grid>
        </Grid>
    </Border>
    

    does not do what you want, then you are going to have to make your own control template for the grid (or border) that DOES do what you want.

    0 讨论(0)
提交回复
热议问题