微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法在 .NET UWP WebView 中禁用 CTRL + I,选项卡插入

如何解决有没有办法在 .NET UWP WebView 中禁用 CTRL + I,选项卡插入

我目前正在开发一个 UWP 应用程序,我有一个 WebView 控件,用户可以与之交互。在此 WebView 中,用户可以格式化一些文本,我希望 CTRL + I 将斜体格式应用于任何选定的文本。

当按下 CTRL + I 时,应用程序格式化文本(在访问的站点上使用 jQuery 处理),但是,任何选定的文本都被替换为制表符。

我知道 CTRL + I 按键事件导致键码 9,它对应于制表符,但是,我想知道是否有办法禁用此交互?

我尝试拦截 KeyDownPreviewKeyDown 事件,但没有成功。事件从未触发,我假设这是因为我在 web 视图中输入文本。 我还检查了字符没有插入,打开访问的页面时,使用普通的网络浏览器。

以下是 webview 的上下文。

<Page
    <!-- imports -->
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Grid>
        <WebView x:Name="Editor"
                 Source="ms-appx-web:///WebView.html"
                 ScriptNotify="Editor_ScriptNotify"
                 NavigationStarting="Editor_NavigationStarting"
                 NavigationCompleted="Editor_NavigationCompleted"/>
    </Grid>
</Page>

解决方法

有没有办法在 .NET UWP WebView 中禁用 CTRL + I,标签插入

恐怕您无法从 uwp 端禁用 Ctrl + i。更好的方法是在 html 端使用 javascript 处理多个按键。

例如

 <body>
    <script type="text/javascript">

        let keysPressed = {};
        document.addEventListener('keyup',(event) => {
            delete keysPressed[event.key];
        });
        document.addEventListener('keydown',(event) => {
            keysPressed[event.key] = true;

            if (keysPressed['Control'] && event.key == 'i') {

                event.preventDefault();

                document.execCommand('italic',false,null);

            }
        });

    </script>
    <div id="editor1" contenteditable="true">
        The quick brown fox jumped over the lazy dog.
    </div>
</body>

您可以检测 keydown 事件并使用 preventDefault 方法禁用默认行为,并在 Ctrl + i 像上面一样按下时添加执行新命令。 >

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?