none
silverlight的Button控件补完设计 RRS feed

  • 常规讨论

  • silverlight的Button控件补完设计
    发布于:2008-06-06 15:29:19 作者:williams 来源:www.cnblogs.com 访问:6次 文字:
      第一篇文章里设计了一个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";
            }


      效果如下:



      点击之后变成

      这个样子。


    My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com

    My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com

    2009年3月11日 7:09
    版主