<Grid Name="img" MouseRightButtonDown="img_MouseRightButtonDown" MouseRightButtonUp="img_MouseRightButtonUp">
<Grid.ContextMenu>
<ContextMenu Name="contextMenu">
</ContextMenu>
</Grid.ContextMenu>
</Grid>

MenuItem copymi = new MenuItem();
copymi.Header="copy";
copymi.Click += (s,e) => copy_Click(s,e);
contextMenu.Items.Add(copymi);

ならメニューが出ます。
Gridのimgに登録するのかと思ったのですが、

img.Add(contextMenu);

としたら、
'System.Windows.Controls.Grid' に 'Add' の定義が含まれておらず、型 'System.Windows.Controls.Grid' の最初の引数を受け付ける拡張メソッドが見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
とエラーです。