Я попытался найти соответствующую информацию о том, как установить z-индекс элементов макета wpf и панелей.Использование Canvas связано с другим набором проблем позиционирования, которые у меня просто не было времени исследовать.Вот простое решение с использованием свойства Panel.ZIndex в xaml.
<Grid>
<Border Width="100" Height="100" Margin="0,0,50,50" Panel.ZIndex="1" Background="Navy" Opacity="0.3"
VerticalAlignment="Top" HorizontalAlignment="Left">
</Border>
<Border Width="100" Height="100" Margin="50,50,0,0" Background="Fuchsia" Opacity="0.3">
</Border>
Результирующие два квадратных элемента границы будут перекрываться.Можно использовать стековые панели вместо границ и использовать эту логику, чтобы легко перекрывать что-либо.
Вот тот же код, адаптированный к проблеме кнопки:
<Grid>
<StackPanel Panel.ZIndex="10" Margin="20,20,0,0" HorizontalAlignment="Left">
<Button Content="One" Width="50" Height="40">
</Button>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="50,0,0,0" >
<Button Content="Two" Width="50" Height="40"/>
<Button Content="Three" Width="50" Height="40"/>
<Button Content="Four" Width="50" Height="40"/>
</StackPanel>
</Grid>