• 初试Silverlight1.1中的事件处理


        现正在学习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文件源代码:
    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;

    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));


                MyTextBlock.MouseLeftButtonDown
    +=new MouseEventHandler(MyTextBlock_MouseLeftButtonDown);
            }

            
    void MyTextBlock_MouseLeftButtonDown(object sender, MouseEventArgs e)
            
    {
                
    //throw new NotImplementedException();

                ShowText.Text 
    = "This is Button1";
            }

            
    private void OnMyButtonClicked(object sender, EventArgs e)
            
    {
                ShowText.Text 
    = "This is Button2";
            }

        }

    }
    演示效果如下:
           1.单击Button1的效果 

            2.点击按钮2的效果

            遗憾的是好像Silverlight1.1还是不直接支持中文。


  • 相关阅读:
    JS-窗体对象 与 事件返回值属性
    JS-事件流操作
    JS-鼠标、键盘事件及事件对象/event
    JS-事件
    JS-DOM样式操作
    JS-DOM节点属性
    AVS 通信模块之AVSConnectionManager
    AVS 通信模块
    AVS 通信协议
    AVS SampleApp
  • 原文地址:https://www.cnblogs.com/gyche/p/1059276.html
Copyright © 2020-2023  润新知