WPF WebBrowser Mouse Events not working as expected
Mouse events are not supported by the WebBrowser
control, according to the documentation. You need to hook up handlers to the DOM events provided by the document being displayed in the control, using the WebBrowser.Document
property. This post has an example of how to do this.
WPF Browser control Mousedown event not firing
I got the solution by injecting javascript that adds a html mousedown event to the website. The javascirpt in turn invokes a wpf function that is written into a class using ComVisible[true].
http://sekhartechblog.blogspot.in/2012/04/webbrowser-javascript-communication-in.html
WPF WebBrowser disabling mouse events for webpages in the browser?
The WebBrowser control is not a usual wpf control. Its an activeX host that hosts the browser inside a new window that is drawn on top of your wpf window. This is known as the windows 'Airspace issue'.
This is why setting the IsEnabled property or placing another control on top of it does not work.
Since the WebBrowser has its own window, the only way to prevent mouse input to your web page is to prevent mouse input to the browsers window. You can do this with an external call to EnableWindow(IntPtr hWnd, bool enable)
.
Here is a small sample:
MainWindow.xaml:
<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="800"
Height="450"
mc:Ignorable="d">
<Grid>
<WebBrowser x:Name="Browser"/>
</Grid>
</Window>
MainWindow.xaml.cs:
namespace Test
{
static class Win32
{
[DllImport("user32.dll")]
public static extern bool EnableWindow(IntPtr hWnd, bool enable);
}
public partial class MainWindow : Window
{
public MainWindow()
{
Loaded += MainWindow_Loaded;
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
Win32.EnableWindow(Browser.Handle, false);
}
}
}
This will disable all mouse and keyboard inputs to the browser window.
WPF WebBrowser control - Navigating event not firing
Just to close this question: in my case it was some kind of problem at system level, IE was behaving strangely in other scenarios too. On a new Windows installation it started working again.
Mouse over events with path in a grid don't work as expected, wpf
As mentioned in the comment if you want whole Grid
to be hit test visible you need to initialize Background
property of the Grid
with some brush, for example Transparent
which will have same visual effect as null
but will make whole Grid
hit test visible.
<Grid ... x:Name="gdOpenBrowser" Background="Transparent">
How do i catch all mouse clicks / touch events in my WPF application - even when a WebBrowser is in front
Global hooks FTW: http://globalmousekeyhook.codeplex.com/
How to use 'Back' & 'Forward' navigation button events in WPF WebBrowser?
You can use low level hook of mouse and check if the xbutton1 or xbutton2 clicked
look here
for the value of WM_XBUTTONDOWN
look http://msdn.microsoft.com/en-us/library/ms646245(VS.85).aspx
ol3 with IE11 in a c# webbrowser control mouse click events not working
So, I decided to roll back to IE10. Everything works in both the native browser and in the WebBrowser control.
IE11 breaks too much stuff, and isn't worth the "upgrade" at this point in time.
I will be checking out CefSharp in the future, just not enough time to put into upcoming release.
Mouse-down event not working on Canvas control in my wpf application
This is simple enough, and actually has nothing to do with MVVM at all.
Look at the XAML definition, your TextBlock
is taking up all available space of the 2nd column, the canvases are beneath it so they can not respond to the mouse clicks.
Set a decent size to the TextBlock
and move it to one of the corners can solve your problem.
Or you can recorder the Z-Order of the controls, first the TextBlock, then the canvases.
Related Topics
How to Get the List of All Printers in Computer
How to Implement Batch Fetching with Fluent Nhibernate When Working with Oracle
How to Open a Web Page from My Application
Button in a Column, Getting the Row from Which It Came on the Click Event Handler
Wpf/C#: Where Should I Be Saving User Preferences Files
How to Prevent an Exception in a Background Thread from Terminating an Application
.Net Core 3 Yields Different Floating Point Results from Version 2.2
What's the Difference Between Utf8/Utf16 and Base64 in Terms of Encoding
Visual Studio Installer > How to Launch App at End of Installer
Finding Property Differences Between Two C# Objects
How to Use Async to Increase Winforms Performance
Should the Repository Layer Return Data-Transfer-Objects (Dto)
Calculating Hmacsha256 Using C# to Match Payment Provider Example
How to Connect and Use a SQLite Database from C#
Syncing SQL Server 2008 Databases Over Http Using Wcf & Sync Framework