初试Silverlight1.1中的事件处理
现正在学习Silverlight1.1,最为关心的是其事件的处理。
对于Silverlight DOM对象的事件处理比较简单,首先在对应的XAML文件中为事件源对象和目标对象声明x:Name属性,然后在XAML的代码后置类中通过使用该属性的值就可对该对象进行完全控制,当然需要为事件源对象附加一个对应的事件。
对于由HTML元素触发的事件要相对复杂一些,首先需在XAML的代码后置类中通过HtmlPage.Document.GetElementByID("ElementID")获取该元素对象,然后为该对象附加一个事件,再在对应的事件处理方法中就可进行事件的处理。
演示代码如下:
XAML文件源代码:
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Browser;
![](/Images/OutliningIndicators/None.gif)
namespace SilverlightStudy
{
public partial class Page : Canvas
{
private HtmlDocument document;
public void Page_Loaded(object o, EventArgs e)
{
// Required to initialize variables
InitializeComponent();
document = HtmlPage.Document;
HtmlElement MyButton = document.GetElementByID("MyButton");
bool ec1 = MyButton.AttachEvent("onclick", new EventHandler(this.OnMyButtonClicked));
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
MyTextBlock.MouseLeftButtonDown+=new MouseEventHandler(MyTextBlock_MouseLeftButtonDown);
}
void MyTextBlock_MouseLeftButtonDown(object sender, MouseEventArgs e)
{
//throw new NotImplementedException();
![](/Images/OutliningIndicators/InBlock.gif)
ShowText.Text = "This is Button1";
}
private void OnMyButtonClicked(object sender, EventArgs e)
{
ShowText.Text = "This is Button2";
}
}
}
演示效果如下:
1.单击Button1的效果
![](/images/cnblogs_com/gyche/1.png)
2.点击按钮2的效果
![](/images/cnblogs_com/gyche/2.png)
遗憾的是好像Silverlight1.1还是不直接支持中文。
对于Silverlight DOM对象的事件处理比较简单,首先在对应的XAML文件中为事件源对象和目标对象声明x:Name属性,然后在XAML的代码后置类中通过使用该属性的值就可对该对象进行完全控制,当然需要为事件源对象附加一个对应的事件。
对于由HTML元素触发的事件要相对复杂一些,首先需在XAML的代码后置类中通过HtmlPage.Document.GetElementByID("ElementID")获取该元素对象,然后为该对象附加一个事件,再在对应的事件处理方法中就可进行事件的处理。
演示代码如下:
XAML文件源代码:
1
<Canvas x:Name="parentCanvas"
2
xmlns="http://schemas.microsoft.com/client/2007"
3
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4
Loaded="Page_Loaded"
5
x:Class="SilverlightStudy.Page;assembly=ClientBin/SilverlightStudy.dll"
6
Width="300"
7
Height="100"
8
Background="White"
9
>
10
<Canvas Width="300" Height="100" Canvas.Top="0" Canvas.Left="0">
11
<Canvas.Background>
12
<SolidColorBrush Color="PaleGreen"></SolidColorBrush>
13
</Canvas.Background>
14
<Rectangle Canvas.Left="0" Width="120" Height="40" Stroke="Blue" StrokeThickness="3">
15
<Rectangle.Fill>
16
<LinearGradientBrush>
17
<GradientStop Color="Yellow" Offset="0.2"/>
18
<GradientStop Color="Orange" Offset="0.5"/>
19
<GradientStop Color="Red" Offset="0.8"/>
20
</LinearGradientBrush>
21
</Rectangle.Fill>
22
</Rectangle>
23
<TextBlock x:Name="MyTextBlock" FontFamily="Arial" Cursor="Hand" FontSize="30" Foreground="Blue" Canvas.Left="0" Canvas.Top="0" Text="Button1"></TextBlock>
24
<TextBlock x:Name="ShowText" FontFamily="Arial" Canvas.Left="0" Canvas.Top="60" FontSize="30">
25
<TextBlock.Foreground>
26
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
27
<GradientStop Color="Yellow" Offset="0.3"/>
28
<GradientStop Color="Orange" Offset="0.5"/>
29
<GradientStop Color="Red" Offset="0.8"/>
30
</LinearGradientBrush>
31
</TextBlock.Foreground>
32
</TextBlock>
33
</Canvas>
34
</Canvas>
XAML.CS文件源代码:![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/None.gif)
20
![](/Images/OutliningIndicators/None.gif)
21
![](/Images/OutliningIndicators/None.gif)
22
![](/Images/OutliningIndicators/None.gif)
23
![](/Images/OutliningIndicators/None.gif)
24
![](/Images/OutliningIndicators/None.gif)
25
![](/Images/OutliningIndicators/None.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/None.gif)
28
![](/Images/OutliningIndicators/None.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/None.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
1.单击Button1的效果
![](/images/cnblogs_com/gyche/1.png)
2.点击按钮2的效果
![](/images/cnblogs_com/gyche/2.png)
遗憾的是好像Silverlight1.1还是不直接支持中文。