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)


Technorati Tags:
Published Wednesday, July 22, 2009 12:36 AM by pluginbaby
Filed under:

Comments

Thursday, July 30, 2009 1:10 PM by DaveB

# re: Silverlight 3 object tag param list (aka Where is my asp:Silverlight control?)

In the first code sample, the closing OBJECT tag should be </OBJECT>. The / is missing.