First Create a Silverlight application and upload on Webresource in CRM.
Then second step create a HTML web Page like below.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ExpenseNote</title>
<style type="text/css">
html, body {
height: 100%;
overflow: auto;
}
body {
padding: 0;
margin: 0;
}
#silverlightControlHost {
height: 100%;
text-align:center;
}
</style>
<script type="text/jscript" src="../../ClientGlobalContext.js.aspx"></script>1:
2: <script type="text/javascript" src="../JavaScripts/Silverlight.js">1: </script>
2: <script type="text/javascript">3: function onSilverlightError(sender, args) {4:
5: var appSource = "";6: if (sender != null && sender != 0) {7: appSource = sender.getHost().Source;
8: }
9:
10: var errorType = args.ErrorType;11: var iErrorCode = args.ErrorCode;12:
13: if (errorType == "ImageError" || errorType == "MediaError") {14: return;15: }
16:
17: var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n" ;18:
19: errMsg += "Code: "+ iErrorCode + " \n";20: errMsg += "Category: " + errorType + " \n";21: errMsg += "Message: " + args.ErrorMessage + " \n";22:
23: if (errorType == "ParserError") {24: errMsg += "File: " + args.xamlFile + " \n";25: errMsg += "Line: " + args.lineNumber + " \n";26: errMsg += "Position: " + args.charPosition + " \n";27: }
28: else if (errorType == "RuntimeError") {29: if (args.lineNumber != 0) {30: errMsg += "Line: " + args.lineNumber + " \n";31: errMsg += "Position: " + args.charPosition + " \n";32: }
33: errMsg += "MethodName: " + args.methodName + " \n";34: }
35:
36: throw new Error(errMsg);37: }
38:
</script>
</head>
<body>
<form id="form1" runat="server" style="height:100%">
<div id="silverlightControlHost">
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="../XAP/Treeview.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.50826.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
</form>
</body>
</html>
Note:
1) In the source parameter specify the path of your xap webresource correctly.
Here name of the webresource is ink_/XAP/Treeview.xap and so the value for source is "../XAP/Treeview.xap", a relative path.
2) Also add the SilverLight.js file as a webresource. You can find the Silverlight.js file in sdk in the Silverlight example projects.
Now create a webresource and upload this html file. We have named this html webresource as Treeview.html.
Now we need to open this html file on click of a button.
For this we will create a button. You can create button using the Visual Ribbon editor. To use Visual Ribbon Editor refer this link
http://microsoftcrmkartik.blogspot.in/2012/10/create-mark-complete-function-button-in.html
In Action you can either directly specify a URL which will be accessed on button click or you can specify a javascript function which is defined within a webresource of type javascript file. In this example we would be using a javascript function defined within a webresource.
Here OpenSilverLightControl is the function that contains code to open the Treeview.html file.
function OpenSilverLightControl()
{
var serverUrl = Xrm.Page.context.getServerUrl();
window.showModalDialog(serverUrl+'/WebResources/ink_/html/Treeview.html', " ","dialogWidth:800px ; dialogHeight:600px; center:yes;resizable:yes");
}