Вы можете сделать это, используя событие MouseDown для изображения, подобное этому
<Image ... MouseDown="Image_MouseDown">
<Image.ContextMenu>
<ContextMenu>
<MenuItem .../>
<MenuItem .../>
</ContextMenu>
</Image.ContextMenu>
</Image>
. Затем покажите ContextMenu в EventHandler в коде позади
private void Image_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left)
{
Image image = sender as Image;
ContextMenu contextMenu = image.ContextMenu;
contextMenu.PlacementTarget = image;
contextMenu.IsOpen = true;
}
}
Не нужно сожалеть о вашем английском! это прекрасно:)
android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1598)
Вышеуказанная ошибка возникает, когда ваше приложение пытается выполнить любую сетевую операцию в основном потоке.
Вы можете использовать приведенный ниже код для принудительного выполнения операции или создания отдельного потока и выполнения операции.
Вариант 1: форсирование
int SDK_INT = android.os.Build.VERSION.SDK_INT;
if (SDK_INT > 8)
{
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
//your codes here
}
Вариант 2: отдельная резьба
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
// do something in here
}
});
thread.start();