Como faço para colocar uma borda na minha grade em C # / WPF?
Isso é o que eu gostaria que fosse, mas coloca uma borda ao redor de tudo em vez do controle de grade que coloquei em meu aplicativo.
<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 ...
Respostas:
Se você deseja apenas uma borda externa, a maneira mais fácil é colocá-la em um controle de borda:
A razão pela qual você está vendo a borda preencher completamente o seu controle é que, por padrão, HorizontalAlignment e VerticalAlignment estão definidos como Stretch. Experimente o seguinte:
Isso deve dar a você o que você procura (embora você possa querer colocar uma margem em todos os 4 lados, não apenas em 2 ...)
fonte
Se aninhar sua grade em um controle de fronteira
não faz o que você deseja, então você terá que fazer seu próprio modelo de controle para a grade (ou borda) que FAZ o que você deseja.
fonte
Acho que o seu problema é que a margem deve ser especificada na tag de borda e não na grade.
fonte
Esta é uma resposta posterior que funciona para mim, se puder ser útil para alguém no futuro. Eu queria uma borda simples ao redor de todos os quatro lados da grade e consegui assim ...
fonte
Grid
controle não tem umBorderBrush
atributo, masDataGrid
tem ...Este código envolve uma borda dentro do "innerGrid"
fonte
Se alguém estiver interessado no problema semelhante, mas não estiver trabalhando com XAML, aqui está minha solução:
fonte