Если вы захватываете событие клика в своем JavaScript, чтобы получить то, что выбрано на странице, которое, по сути, является вашим событием.В вашем JavaScript вызовите метод C # из этого клика.
Например, в приложении, которое я написал, у меня отображалась страница D3 в CefSharp, на которой была показана схема раскладки, когда пользователь нажимал на элемент в раскладке, JavaScript отправлял идентификатор этого элемента на C #который, в свою очередь, возвращал сериализованный фрагмент данных обратно в JavaScript, который затем отображался (фактически у меня был класс C #, который выполнял роль слоя между CefSharp и моей моделью, обрабатывающей сериализацию в JavaScript и из него).Похоже, вам нужно использовать такой подход для достижения цели, а не фактического события нажатия на самом элементе управления браузера.
Я добавил ниже пример кода, который показывает кнопку наэкран в CefSharp (как определено в index.html).При нажатии кнопки она передает значение со страницы в класс JsHandler, который, в свою очередь, отображает окно сообщения со значением.
Mainwindow.xaml
<Window x:Class="CefSharpWPF.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"
xmlns:local="clr-namespace:CefSharpWPF"
xmlns:wpf="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<wpf:ChromiumWebBrowser Grid.Row="0"
x:Name="Browser" />
</Grid>
</Window>
Mainwindow.cs
public partial class MainWindow : Window
{
JsHandler jsHandler = new JsHandler();
public MainWindow()
{
InitializeComponent();
Browser.Address = Environment.CurrentDirectory + "/index.html";
Browser.JavascriptObjectRepository.Register("jsHandler", jsHandler);
}
}
index.html
<html>
<head>
<script type="text/javascript">
CefSharp.BindObjectAsync("jsHandler", "jsHandler");
</script>
<title>Test Page</title>
</head>
<body>
<button onclick="window.jsHandler.handleJsCall(1)">button</button>
</body>
</html>
JsHandler.cs
class JsHandler
{
public void HandleJsCall(int arg)
{
MessageBox.Show($"Value Provided From JavaScript: {arg.ToString()}", "C# Method Called");
}
}