zoukankan      html  css  js  c++  java
  • silverlight的Button控件补完设计silverlight(银光)学习(2)

        第一篇文章里设计了一个Button按钮,比较让人遗憾的是不能显示中文,这个涉及到字体版权问题。我想微软也怕像"暴雪"公司的WOW被"方正"告侵权一样。网上有几种解决方案,有下载字体的,有在WORD里设计字体的。这个不在我讨论的范围内,我只想把Button 加上点击事件就行了。至于支持中文的问题,我想等正式版发布了早就解决了。
      
       在asp.net里按钮都有Click事件,那么在xaml界面里,怎么触发鼠标点击事件呢?其实在xaml里正对鼠标有

        MouseEnter           MouseLeave           MouseLeftButtonDown          MouseLeftButtonUp  事件

       我们在鼠标的MouseLeftButtonUp  事件触发的时候就调用我们自己写的事件就可以实现鼠标左键点击事件了。
      
       代码片段如下:


            
    public event EventHandler Click;

            
    // 触发点击事件
            protected void RaiseClick()
            
    {
                
    if (Click != null)
                
    {
                    Click(
    thisnull);
                }

            }

      
      
    void actControl_MouseLeftButtonUp(object sender, MouseEventArgs e)
            
    {
                ReleaseMouseCapture();
                RaiseClick();
            }

     这样我们就给按钮控件加上Click事件。
     
    我们回到上一篇给出的wowmovie项目,在page.xmal.cs里面加上如下代码:
           public void Page_Loaded(object o, EventArgs e)
            
    {
                
    double top = 100;
                
                
    double left = 20;

                ButtonControl txtbox 
    = new ButtonControl();

                txtbox.ButtonText 
    = "Hello!";

                txtbox.SetValue
    <double>(Canvas.TopProperty, top);

                txtbox.SetValue
    <double>(Canvas.LeftProperty, left);

                txtbox.Click 
    += new EventHandler(txtbox_Click);

                
    this.Children.Add(txtbox);

      }


            
    void txtbox_Click(object sender, EventArgs e)
            
    {
                ButtonControl bt 
    = sender as ButtonControl;

                bt.ButtonText 
    = "You Click Me";
            }

    效果如下:
     点击之后变成这个样子。
       本文版权属于王传炜所有,首发http://www.cnblogs.com/,转载请注明出处。
  • 相关阅读:
    从excel表中生成批量SQL,将数据录入到数据库中
    执行git命令时出现fatal: 'origin' does not appear to be a git repository错误
    小程序获取openid 出现null,{"errcode":40163,"errmsg":"code been used, hints: [ req_id: WNUzlA0105th41 ]"}
    由客户端内部通讯引发的插件化开发的随想和实践
    Prism6下的MEF:基于微软企业库的Cache
    从微信SDK看ProtoBuffer文件的生成
    Prism6下的MEF:添加Logger
    Prism6下的MEF:第一个Hello World
    讲讲Windows10(UWP)下的Binding
    Windows10(UWP)下的MEF
  • 原文地址:https://www.cnblogs.com/wangergo/p/901597.html
Copyright © 2011-2022 走看看