SilverLight浏览器交互之:使用SilverLight程序把外部Html页作为资源进行绘图(附源码)

概述

CompositionTarget.Rendering 事件


在核心 Silverlight 呈现过程呈现某一帧时发生。
当此事件发生时,表示存在一个可视框架可用于呈现到 Silverlight 内容图面。
然后,可以在处理程序中一帧一帧地修改应用程序的可视对象或任何其他方面的内容。

WebBrowserBrush.Redraw 方法


强制画笔以异步方式重绘自身。

效果

xaml代码:

<Grid x:Name="LayoutRoot">
<Grid.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#FF0055DD" Offset="0" />
<GradientStop Color="#FF00DDFF" Offset="1" />
</LinearGradientBrush>
</Grid.Background>

<WebBrowser x:Name="web" Height="500" Width="500" Visibility="Collapsed" Source="/example-page.aspx" />

<Ellipse Margin="25" Stroke="Black" StrokeThickness="2">
<Ellipse.Fill>
<WebBrowserBrush SourceName="web" x:Name="EllipseBrush" />
</Ellipse.Fill>
</Ellipse>
</Grid>

cs代码:

public MainPage()
{
InitializeComponent();

Loaded
+= new RoutedEventHandler(MainPage_Loaded);
}

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
//CompositionTarget.Rendering 事件
//在核心 Silverlight 呈现过程呈现某一帧时发生。
//当此事件发生时,表示存在一个可视框架可用于呈现到 Silverlight 内容图面。
//然后,可以在处理程序中一帧一帧地修改应用程序的可视对象或任何其他方面的内容。
CompositionTarget.Rendering += (s, ev) =>
{
//WebBrowserBrush.Redraw 方法
//强制画笔以异步方式重绘自身。
EllipseBrush.Redraw();
};
}

html页:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="example-page.aspx.cs" Inherits="PaintEllipse.Web.ClientBin.example_page" %>

<!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 id="Head1" runat="server">
<title>Demo Page</title>
</head>
<body>
<div style="margin: 20px; font-family: Arial; font-size: 20pt">
这是一个out-of-browser应用:
<p>
SilverLight程序嵌套的是来自同一领域的HTML页面,在
<a href="example-page.html">SilverLight</a>
程序中html页面是不存在的。
</div>
<div style="margin: 20px">
<img src="ying.gif" />
</div>
</body>
</html>

大功告成!!!

源码下载


作者:记忆逝去的青春
出处:http://www.cnblogs.com/lukun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过http://www.cnblogs.com/lukun/  联系我,非常感谢。


posted on 2011-05-03 14:42  记忆逝去的青春  阅读(674)  评论(0编辑  收藏  举报