Как разместить границу в моей сетке в WPF?
Как разместить границу в моей сетке в С#/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 ...
Ответы
Ответ 1
Если вы просто хотите внешнюю границу, самый простой способ - поместить ее в элемент управления границей:
<Border BorderBrush="Black" BorderThickness="2">
<Grid>
<!-- Grid contents here -->
</Grid>
</Border>
Edit:
Причина, по которой вы видите границу, полностью заполняет ваш контроль, заключается в том, что по умолчанию для параметра 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>
Это должно дать вам то, что вам нужно (хотя вы можете поместить маржу на всех 4 сторонах, а не только на 2...)
Ответ 2
Если вложенность вашей сетки в пограничном режиме
<Border>
<Grid>
</Grid>
</Border>
не делает то, что вы хотите, тогда вам придется создать свой собственный шаблон управления для сетки (или границы), которая делает то, что вы хотите.
Ответ 3
Я думаю, ваша проблема в том, что маржа должна быть указана в теге border, а не в сетке.
Ответ 4
<Grid x:Name="outerGrid">
<Grid x:Name="innerGrid">
<Border BorderBrush="#FF179AC8" BorderThickness="2" />
<other stuff></other stuff>
<other stuff></other stuff>
</Grid>
</Grid>
Этот код Оберните границу внутри "innerGrid"