在Silverlight中与HTML DOM交互
<form id="form1" runat="server" style="height: 100%;">
<div id="div1">
这里是第一个div,id为div1</div>
<div id="div2">
这里是第二个div,id为div2</div>
<div id="parentdiv">
<ul id="list">
</ul>
</div>
<div id="silverlightControlHost">
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2"
width="100%" height="200px">
<param name="source" value="ClientBin/Binglang.SilverlightDemo14.xap" />
<param name="onerror" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="3.0.40624.0" />
<param name="autoUpgrade" 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="获取 Microsoft Silverlight"
style="border-style: none" />
</a>
</object>
<iframe id="_sl_historyFrame" style='visibility: hidden; height: 0; width: 0; border: 0px'>
</iframe>
</div>
</form>
2.实现SilverLight
前台代码:
<Canvas@H_113_502@ x:@H_113_502@Name="LayoutRoot"@H_113_502@ Background="#D5FCDF">
<TextBlock@H_113_502@ Text="Silverlight Accessing the HTML DOM"@H_113_502@ Foreground="Red"
Canvas.Top="10" Canvas.Left="30" FontSize="18">
</TextBlock>
<TextBox@H_113_502@ x:@H_113_502@Name="input"@H_113_502@ Text="在这里输入"
Height="40" Width="300"
Canvas.Left="30" Canvas.Top="50">
</TextBox>
<TextBox@H_113_502@ x:@H_113_502@Name="result"@H_113_502@ Text="这里显示结果"
Height="40" Width="300"
Canvas.Left="30" Canvas.Top="100">
</TextBox>
<Button@H_113_502@ x:@H_113_502@Name="displayButton"@H_113_502@ Background="Red"
Height="40" Width="130" Content="读取html元素的属性并显示"
Canvas.Top="50" Canvas.Left="350"
Click="displayButton_Click">
</Button>
<Button@H_113_502@ x:@H_113_502@Name="setButton"@H_113_502@ Background="Red"
Height="40" Width="130" Content="设置html元素的属性"
Canvas.Top="100" Canvas.Left="350"
Click="setButton_Click">
</Button>
<Button@H_113_502@ x:@H_113_502@Name="createButton"@H_113_502@ Background="Red"
Height="40" Width="130" Content="创建一个html元素"
Canvas.Top="50" Canvas.Left="500"
Click="createButton_Click">
</Button>
<Button@H_113_502@ x:@H_113_502@Name="deleteButton"@H_113_502@ Background="Red"
Height="40" Width="130" Content="删除一个html元素"
Canvas.Top="100" Canvas.Left="500"
Click="deleteButton_Click">
</Button>
<Button@H_113_502@ x:@H_113_502@Name="addButton"@H_113_502@ Background="Red"
Height="40" Width="160" Content="创建一个带事件的html元素"
Canvas.Top="50" Canvas.Left="650"
Click="addButton_Click">
</Button>
</Canvas>
//读取
private void displayButton_Click(object sender,RoutedEventArgs e)
{
HtmlElement element = HtmlPage.Document.GetElementById(this.input.Text);
this.result.Text = element.GetAttribute("innerText");
}
//设置
private void setButton_Click(object sender,RoutedEventArgs e)
{
//示例1
HtmlElement element = HtmlPage.Document.GetElementById(this.input.Text);
element.SetAttribute("innerText",this.result.Text);
////示例2
//HtmlElement element = HtmlPage.Document.GetElementById(this.input.Text);
//element.SetStyleAttribute("width",this.result.Text);
//element.SetStyleAttribute("height",this.result.Text);
}
//创建
private void createButton_Click(object sender,RoutedEventArgs e)
{
HtmlElement parent = HtmlPage.Document.GetElementById("list");
HtmlElement child = HtmlPage.Document.CreateElement("li");
child.SetAttribute("id","li"+(parent.Children.Count+1).ToString());
child.SetAttribute("innerText",this.input.Text);
parent.AppendChild(child);
}
//删除
private void deleteButton_Click(object sender,RoutedEventArgs e)
{
HtmlElement parent = HtmlPage.Document.GetElementById("list");
HtmlElement child = HtmlPage.Document.GetElementById(this.input.Text);
parent.RemoveChild(child);
}
//创建一个带事件的html元素
private void addButton_Click(object sender,RoutedEventArgs e)
{
HtmlElement parent = HtmlPage.Document.GetElementById("parentdiv");
HtmlElement button = HtmlPage.Document.CreateElement("a");
button.SetAttribute("innerText","改变Silverlight中的颜色");
button.SetAttribute("href","#");
button.CssClass = "newstyle";
parent.AppendChild(button);
button.AttachEvent("onclick",new EventHandler<HtmlEventArgs>(button_Click));
}
void button_Click(object sender,HtmlEventArgs e)
{
result.BorderBrush = new SolidColorBrush(Colors.Black);
result.Background = new SolidColorBrush(Colors.Green);
}
@H_404_2@版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。