Silverlight 3 object tag param list (aka Where is my asp:Silverlight control?)
As you know Silverlight 3 is released, among the new features, one of the first things you’ll notice is the disappearance of the asp:Silverlight control. This server control was available with Silverlight 2 to help you insert Silverlight app in ASP.NET pages. This asp:Silverlight control is no longer part of Silverlight 3 tools or SDK, the recommended way is to use the html Object tag or Silverlight.js approach. Note that if you have an existing Silverlight 2 application, you can continue to use the asp:Silverlight control, even if you migrate it to Silverlight 3 (you get it from the referenced System.Web.Silverlight.dll assembly, this is the one that is not part of Silverlight 3 anymore).
If you still want to use the asp:Silverlight control for new
Silverlight 3 projects, you can get it here (with source
code):
http://code.msdn.microsoft.com/aspnetprojects
So… what if you would like to try the object tag?
As
you know the minimum code to insert your Silverlight app in
html is:
<object type="application/x-silverlight-2" data="data:application/x-silverlight," width="450" height="220"> <param name="source" value="MySilverlightApplication.xap"/> </object>
Note in the data element the trailing comma is required for Firefox.
Then you can add several <param> elements to customize
the experience, but where to get the list of available
params (no IntelliSense here)?
MSDN gives you a list
in the
Silverlight Plug-in Object Reference
page, but you have to click on each page to get the
details...
Comprehensive <Param> list
Here is a recap of all available parameters that you can pass to the Silverlight plug-in as <param>:
| Parameter | Description | Type |
| allowHtmlPopupWindow |
Specifies whether the
HtmlPage.PopupWindow method is allowed.
Defaults to true for applications in the
same domain, otherwise false.
|
Boolean |
| autoUpgrade |
Specifies whether the plug-in should attempt to
upgrade if minRuntimeVersion is newer
than the current Silverlight version. Default is true.
|
Boolean |
| background |
Plug-in background color. Default is
null (white).
|
Color with or without alpha (RGB, ScRGB) |
| enableAutoZoom | Indicates whether the host (for certain platforms) can invoke zoom behavior that increases the DPI. Default is true. | Boolean |
| enableCacheVisualization |
Indicates whether to use a non-production analysis visualization mode, which shows areas of a page that are being GPU accelerated with a colored overlay. Default is false. Do not use in production code. |
Boolean |
| enableFramerateCounter | Indicates whether to display the current frame rate in the hosting browser's status bar (IE/Win only). | Boolean |
| enableGPUAcceleration | Indicates whether to use graphics processor unit (GPU) hardware acceleration for cached compositions, which potentially results in graphics optimization. (false by default) | Boolean |
| enablehtmlaccess |
Specifies whether the plug-in has full access to the
browser DOM. Defaults to true for
applications in the same domain, otherwise
false.
|
Boolean |
| enableNavigation | Indicates whether the hosted content in the Silverlight plug-in can use a HyperlinkButton to navigate to external URIs. Default is all. |
all: the hosted content can use HyperlinkButton to navigate to any URI. none: the hosted content cannot use HyperlinkButton for navigation to an external URI. Relative URIs for internal navigation are still permitted. |
| enableRedrawRegions | Determines whether to visually indicate the areas of the plug-in that are being redrawn with each frame. This property is for performance tuning and visualization during development only; do not specify it for any deployed Silverlight-based application. Default is false. | Boolean |
| initParams | User-defined string of parameters. | Comma separated key=value pairs |
| maxframerate | Specifies the maximum number of frames per second that the plug-in can render. The default is 60. | Integer |
| minRuntimeVersion | Specifies the earliest version of the Silverlight plug-in required. | Version number |
| onError | Error handler for parse and native code run-time errors. | JavaScript function name |
| onFullScreenChanged |
Function to call when the
FullScreen property changes.
|
JavaScript function name |
| onLoad | Function to call when the plug-in has finished loading in the DOM. | JavaScript function name |
| onResize | Function to call when the plug-in size changes. | JavaScript function name |
| onSourceDownloadComplete | Function to call when the source download has completed. | JavaScript function name |
| onSourceDownloadProgressChanged | Function to call when the source download progress changes. | JavaScript function name |
| onZoom |
Specifies the handler for a Zoomed event that occurs when the Silverlight plug-in content area receives a host-generated zoom event. |
JavaScript function name |
| source | Specifies the address or relative path of either an initial XAML file or XAP. | URI |
| splashScreenSource |
Specifies a XAML page to use as the splash screen.
|
URI |
| windowless |
Specifies the rendering mode for the plug-in for
Windows versions of Silverlight. The default is
false.
|
Boolean |
Sample
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> <param name="source" value="ClientBin/MyApplication.xap"/> <param name="onError" value="onSilverlightError" /> <param name="background" value="white" /> <param name="minRuntimeVersion" value="3.0.40624.0" /> <param name="autoUpgrade" value="true" /> <param name="enableRedrawRegions" value="true" /> <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none"> <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/> </a> </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe>
Note the iframe element is here for cross-browser compatibility. The presence of the iframe prevents the Safari browser from caching the page. Safari caching prevents the Silverlight plug-in from reloading when the user navigates back to a previously-visited Silverlight page. (Also it must appears exactly like in my sample: inline after the </object> tag)