Как спрятать курсор в Awesomium

Я попробовал это:

<awe:WebControl x:Name="webBrowser" Cursor="None" Source="http://example.com/"/>

но курсор все еще показывает.

Я решил, что могу изменить CSS страницы, добавив следующую строку:

*{
    cursor: none;
}

Но есть ли решение, когда у меня нет доступа к реальной странице, которую я показываю?

1 ответ

Решение

Вы можете использовать ResouceInterceptor и манипулировать страницей на лету, чтобы вставить собственный CSS.

РЕДАКТИРОВАТЬ:

Следующая реализация должна сделать работу. (Предполагается, что есть файл text.css)

class ManipulatingResourceInterceptor : IResourceInterceptor
{
    public ResourceResponse OnRequest(ResourceRequest request)
    {
        Stream stream = null;

        //do stream manipulation
        if (request.Url.ToString() == "http://your.web.url/test.css")
        {
            WebRequest myRequest;
            myRequest = WebRequest.Create(request.Url);
            Stream webStream = myRequest.GetResponse().GetResponseStream();
            StreamReader webStreamReader = new StreamReader(webStream);
            string webStreamContent = webStreamReader.ReadToEnd();

            stream = webStream;

            string extraContent = "*{cursor: none;}";

            webStreamContent += extraContent;
            byte[] responseBuffer = Encoding.UTF8.GetBytes(webStreamContent);

            // Initialize unmanaged memory to hold the array.
            int responseSize = Marshal.SizeOf(responseBuffer[0]) * responseBuffer.Length;
            IntPtr pointer = Marshal.AllocHGlobal(responseSize);
            try
            {
                // Copy the array to unmanaged memory.
                Marshal.Copy(responseBuffer, 0, pointer, responseBuffer.Length);
                return ResourceResponse.Create((uint)responseBuffer.Length, pointer, "text/css");
            }
            finally
            {
                // Data is not owned by the ResourceResponse. A copy is made 
                // of the supplied buffer. We can safely free the unmanaged memory.
                Marshal.FreeHGlobal(pointer);
                stream.Close();
            }
        }
        return null;
    }

    public bool OnFilterNavigation(NavigationRequest request)
    {
        return false;
    }
}
Другие вопросы по тегам