Hi Guys,
I have been actively participating in Silverlight.net, so i couldn't post here in the last 2 weeks. Well the forums are amazing, you get to learn a whole lot of things there. But first, let me tell you scenario .
A guy developed a Html 5 application, but he also wanted a standalone desktop application also.
He didnt want to recode everything, so he wanted to make an OOB application that shows the HTML.
This is really a big advantage if you dont want to have internet connectivity , but still want to access that app.
After a bit of work, i finally came up with a solution that worked.
1) I added the Html page to my project and changed its Build Action to "Embedded Resource".
2) Next, i tried to access that resource file path through code.
3) This is an out of browser application, so that i could use the Web Browser control.
4) I used Streams to read the data from the html resource and display it in the browser control.
It looks pretty straightforward, right :) Here the code for the thing...
P.S : I love the forums because you are faced with fascinating scenarios and challenges. You could never have encountered all of them on your own . You also brush up with the basics , and more importantly , you get to know what to use in specific scenarios.
P.P.S : I havent forgotten my agenda. I am currently working on the Silverlight Social Networking site. Will start posting the content soon :)
I have been actively participating in Silverlight.net, so i couldn't post here in the last 2 weeks. Well the forums are amazing, you get to learn a whole lot of things there. But first, let me tell you scenario .
A guy developed a Html 5 application, but he also wanted a standalone desktop application also.
He didnt want to recode everything, so he wanted to make an OOB application that shows the HTML.
This is really a big advantage if you dont want to have internet connectivity , but still want to access that app.
After a bit of work, i finally came up with a solution that worked.
1) I added the Html page to my project and changed its Build Action to "Embedded Resource".
2) Next, i tried to access that resource file path through code.
3) This is an out of browser application, so that i could use the Web Browser control.
4) I used Streams to read the data from the html resource and display it in the browser control.
It looks pretty straightforward, right :) Here the code for the thing...
Assembly thisAssembly = Assembly.GetExecutingAssembly();
string[] resNames = thisAssembly.GetManifestResourceNames();
foreach (string resName in resNames)
{
if (resName.ToLower().EndsWith("hello.html"))
{
// To get only the file name
int j = resName.IndexOf('.');
string myres = resName.Substring(j+1);
// To get the folder where that file is present.
string str = Application.Current.Host.Source.LocalPath.ToString();
int i = str.LastIndexOf('\\');
str = str.Substring(0, i+1);
str += myres;
//Open the html in the browser
FileStream fs = new FileStream(str, FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(fs);
string s = sr.ReadToEnd();
sr.Close();
fs.Close();
webBrowser1.NavigateToString(s);
break;
}
}
And so, all of you who want ot create desktop versions of Html pages can happily do so :) P.S : I love the forums because you are faced with fascinating scenarios and challenges. You could never have encountered all of them on your own . You also brush up with the basics , and more importantly , you get to know what to use in specific scenarios.
P.P.S : I havent forgotten my agenda. I am currently working on the Silverlight Social Networking site. Will start posting the content soon :)
No comments:
Post a Comment