#define ARRAY_SIZE(arr) (sizeof arr / sizeof arr[0])
В отличие от 'предпочтительного' шаблонного решения, обсужденного в текущем потоке, можно использовать его в качестве константного выражения:
char src[23];
int dest[ARRAY_SIZE(src)];
Я обычно использую простой выбор, чтобы добавить столбец с фиксированной шириной между кнопками. Вы можете использовать другой цвет фона или вставить изображение
Вы пробовали GridSplitter ?
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Height="*" />
<ColumnDefinition Height="Auto" />
<ColumnDefinition Height="100" />
<ColumnDefinition Height="100" />
</Grid.ColumnDefinitions>
<Button/>
<Button/>
<GridSplitter ResizeDirection="Columns" Grid.Column="2" Height="Auto" Width="4" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0"/>
<Button/>
</Grid>
Вы можете использовать Separator, если правильно его стилизуете. По умолчанию он создает горизонтальную линию. Чтобы сделать ее вертикальной, нужно применить другой стиль. См. это сообщение о том, как стилизовать его под вертикальную линию в WPF Grid:
В обсуждении также упоминается, что StatusBar применяет некоторую стилизацию к элементам Separator, если вы не оборачиваете их в StatusBarItems. Возможно, StackPanel делает что-то подобное.