Company logo
  • Empleos
  • Bootcamp
  • Acerca de nosotros
  • Para profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
    • Bootcamp
  • Para empresas
    • Inicio
    • Nuestro proceso
    • Planes
    • Pruebas
    • Nómina
    • Blog
    • Comercial
    • Calculadora

0

62
Vistas
Overriding Webview2 context menu along with default one

Following the approach mentioned in the below link I was able to override default context menu.

How do you override the ContextMenu that appears when right clicking on WebView2 Control?

I have a question is there a way to show both based on some condition like

  • Normal right-click - Custom Overridden context menu
  • CTRL or SHIFT press + right-click - default context menu
10 months ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

That's actually easy, when you have the code from that link.

The contextmenu event derives from MouseEvent, so it has information about the control keys being pressed.

Simply replace the javascript contextmenu handler to:

document.addEventListener('contextmenu', function (event)
{
    if (!event.ctrlKey && !event.shiftKey)
    {
        let jsonObject =
        {
            Key: 'contextmenu',
            Value:
            {
                X: event.screenX,
                Y: event.screenY
            }
        };
        window.chrome.webview.postMessage(jsonObject);
        event.preventDefault();
    }
});

It works so that if a control key is pressed, it does absolutely nothing, which will show the default menu. If no keys are pressed, it sends the coordinates to C# and calls event.preventDefault();.

Note: In the code from that link, I call:

webView21.CoreWebView2.Settings.AreDefaultContextMenusEnabled = false;

Here, you should NOT call that. Instead call event.preventDefault(); in javascript.

10 months ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos