右クリックするとその場所に表示されるポップアップメニューが欲しい場合、ContextMenu を実装することで実現できます。
 実装例は以下。
<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <ContextMenu x:Key="Menu1" FontSize="32">
            <MenuItem Header="MenuItem1"
                      Click="MenuItem1_Click" />
            <MenuItem Header="MenuItem2">
                <MenuItem Header="MenuItem21"
                          Click="MenuItem21_Click" />
                <MenuItem Header="MenuItem22"
                          Click="MenuItem22_Click" />
            </MenuItem>
        </ContextMenu>
    </Window.Resources>
    <StackPanel>
        <Button Content="A"
                ContextMenu="{StaticResource Menu1}" />
        <Button Content="B"
                ContextMenu="{StaticResource Menu1}" />
        <Button Content="C"
                ContextMenu="{StaticResource Menu1}" />
    </StackPanel>
</Window>
 上記は、複数のコントロールで同じメニューを使う、というのを前提にしたので、ContextMenu の定義は Resources に定義しています。
 フォントやフォントサイズも変えられるようです。
また、上記の定義で右クリックすると ContextMenu が表示されますが、プログラムによってメニューを表示したいという場合は、たとえば以下のコードで実現できます。(ContextMenu の IsOpen を True にする)
' ボタンの ContextMenu を経由して表示
Private Sub ButtonA_Click(sender As Object, e As RoutedEventArgs)
    Dim b = DirectCast(sender, Button)
    b.ContextMenu.IsOpen = True
End Sub
' 直接 Resources を参照して表示
Private Sub ButtonB_Click(sender As Object, e As RoutedEventArgs)
    Dim c = DirectCast(Me.Resources("Menu1"), ContextMenu)
    c.IsOpen = True
End Sub