您现在的位置: 万盛学电脑网 >> 软件知识 >> 图文处理 >> Flash教程 >> 正文

Silverlight:使用内联 XAML

作者:佚名    责任编辑:admin    更新时间:2022-06-22

 内联 XAML 是一个仅可用于 Silverlight 的 JavaScript API 的概念。内联 XAML 与 Silverlight 的托管 API 不兼容。

  使用内联 XAML

  由于它与浏览器 DOM 之间的关系,内联 XAML 构成了使用 JavaScript API 的深思熟虑的选择。如果没有托管项目文件(该文件在其根目录下指定 x:Class)所了解的离散 XAML 文件,则内联 XAML 解决方案无法了解如何连接代码隐藏和 XAML,并且没有特定的指令来编译和连接托管代码。

  若要使用内联 XAML,必须将 XAML 包括在一个特殊 <SCRIPT> 块中并指定“text/xaml”作为 type 属性。XML 文档类型声明 <?xml version="1.0"?> 位于 XAML 内容之前。XAML 内容必须唯一地标识,以便 Silverlight 插件的 Source 初始化参数可以引用它。source 参数在 <SCRIPT> 元素中使用前缀“#”后接 id 值来标识 XAML 内容。XAML 内容还可以定义在 HTML 页上引用事件处理程序的事件。

  下面的 HTML 示例演示如何创建内联 XAML 内容。在此情况下,HTML 页同时包含 JavaScript 和 XAML 内容。请注意指定 source 参数的 object 元素构造。

  说明:

  包含内联 XAML 内容的 <SCRIPT> 元素必须位于包含 Silverlight 插件的 HTML 元素之前,该插件引用内联 XAML 来进行它的源初始化。

<html> 
<head> 
 <title>Display Date</title> 
 <!-- Define Loaded event handler for TextBlock. --> 
 <script type="text/javascript"> 
  function setDate(sender, eventArgs) 
  { 
   sender.text = Date(); 
  } 
 </script> 
</head> 
 
<body bgcolor="Teal"> 
 
<!-- Define XAML content. --> 
<script type="text/xaml" id="xamlContent"><?xml version="1.0"?> 
 <Canvas 
  xmlns="http://schemas.microsoft.com/client/2007" 
  Background="Wheat"> 
  <TextBlock 
   Canvas.Left="20" 
   FontSize="24" 
   Loaded="setDate" /> 
 </Canvas> 
</script> 
 
<div id="silverlightControlHost"> 
 <object type="application/x-silverlight" width="100%" height="100%" id="slc"> 
  <param name="source" value="#xamlContent"/> 
  <param name="onload" value="onLoaded" /> 
  <param name="iswindowless" value="true" /> 
 </object> 
 <iframe style='visibility:hidden;height:0;width:0;border:0px'></iframe> 
</div> 
</body> 
</html> 

  当显示此页时,表明已加载 Silverlight 插件且对于 TextBlock 对象引发了 Loaded 事件,这会导致 TextBlock 显示当前日期和时间