I was developing a desktop app in WPF and where I need to
call C# function from Javascript.
I searched and found a post. I know there are so many posts
are available on web but I am sharing this only to add one more resource so no
one take time to solve their problem.
Very first, below XAML code.
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Height="350" Width="525">
<Grid Name="GrdMain">
</Grid>
</Window>
Now code behind,
public partial class MainWindow :
Window
{
// This nested class must be ComVisible for the JavaScript
to be able to call it.
[System.Runtime.InteropServices.ComVisible(true)]
public class ScriptManager
{
// Variable to store the form of type Form1.
private MainWindow
ParantWindow;
// Constructor.
public ScriptManager(MainWindow
form)
{
// Save the form so it can be referenced
later.
ParantWindow = form;
}
// This method can be called from JavaScript.
public void
MethodToCallFromScript()
{
// Call a method on the form.
ParantWindow.AlertMessage();
}
// This method can also be called from JavaScript.
public void
AnotherMethod(string message)
{
MessageBox.Show(message);
}
}
public void
AlertMessage()
{
// Indicate success.
MessageBox.Show("Hey!
worked.");
}
public MainWindow()
{
InitializeComponent();
WebBrowser web = new
WebBrowser();
// Set the WebBrowser to use an instance of the
ScriptManager to handle method calls to C#.
web.ObjectForScripting = new ScriptManager(this);
// Create the webpage.
String HTMLText = @"<html>
<head>
<title>Test</title>
</head>
<body>
<input
type=""button"" value=""Go!""
onclick=""window.external.MethodToCallFromScript();"" />
<br />
<input
type=""button"" value=""Go Again!""
onclick=""window.external.AnotherMethod('Hello, How are
you?');"" />
</body>
</html>";
web.NavigateToStream(new System.IO.MemoryStream(Encoding.ASCII.GetBytes(HTMLText)));
GrdMain.Children.Add(web);
}
}
What happened here, There is no way to communicate between
application and web browse object.
So to solve this problem I created one class which contains
the object of our main window form. Now we’ll pass that class to web object and
in web object our javascript resides.
Hope you like this post.
Enjoy coading…
Thanks.
smm panel
ReplyDeletesmm panel
İS İLANLARİ
instagram takipçi satın al
HİRDAVATCİBURADA.COM
beyazesyateknikservisi.com.tr
SERVİS
tiktok jeton hilesi
maltepe samsung klima servisi
ReplyDeletekadıköy samsung klima servisi
maltepe mitsubishi klima servisi
kadıköy mitsubishi klima servisi
kartal vestel klima servisi
ümraniye vestel klima servisi
kartal bosch klima servisi
ümraniye bosch klima servisi
üsküdar alarko carrier klima servisi