silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了设计一个silverlight的textbox控件--silverlight(闪光)学习(1)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

在 www.silverlight.net上看到了制作一个silverlight 控件的视频,遗憾的是视频里没有讲怎么设计这个控件。于是追踪到作者的blog里下载到了他的代码,结果发现他的控件代码写得不完美。如果文字过长就会超出控件的边框。于是重新设计了下。      效果如下:            在讲怎么设计这个控件前,我把这个silverlight控件和asp.net里用户自定义控件做下类
www.silverlight.net上看到了制作一个silverlight 控件的视频,遗憾的是视频里没有讲怎么设计这个控件。于是追踪到作者的blog里下载到了他的代码,结果发现他的控件代码写得不完美。如果文字过长就会超出控件的边框。于是重新设计了下。
     效果如下:
     

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


     在讲怎么设计这个控件前,我把这个silverlight控件和asp.net里用户自定义控件做下类比.
userControl.ascx文件用户自定义控件的皮肤文件后台逻辑代码写在.cs里。而 silverlight控件的皮肤文件是.xaml文件后台逻辑代码可以用.js文件,也可以用.cs 文件
   
    废话不多说了,我们动手设计吧。首先建立一个silverlight 类库项目:
 

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)



 项目建好后,删除里面认的一个Class1.cs文件添加一个silverlight控件。

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)



然后把下列代码粘贴到.xaml文件里。

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

xaml代码

这段代码在vs2008里直接看不到效果,用blend2可以看到效果

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)



 熟悉"Flash"设计的朋友会发现这个界面是有几个层组成的,包括了黑色的底色,白色的边框层,还有玻璃效果的一层,还有个文本层,还有一起上下分割两个色彩的层。

 后台的核心逻辑代码如下:
   

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

   /// <sumMary>

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

        
/// 根据文本的长度,重新绘制控件的大小

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

        
/// </sumMary>

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

         private   void  resizeControl()

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

        
{

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            
double left;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            
double top;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            textBlock tb 
= actControl.FindName("GlassButtontext"as textBlock;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            tb.Text 
= txtbutton;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            
if (autoSizE)//如果控件的长度根据文本的长度自动调整

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            {

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

                actControl.Height 
= tb.ActualHeight + 8 ;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

                actControl.Width 
= tb.ActualWidth + 16;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

                OuterBorder.Width 
= tb.ActualWidth + 20;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

                OuterBorder.Height 
= tb.ActualHeight + 10;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

                InnerBorder.Width 
= tb.ActualWidth + 16;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

                InnerBorder.Height 
= tb.ActualHeight + 8;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

                GlassButtonGlowEffect.Width 
= tb.ActualWidth + 16;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

                GlassButtonGlowEffect.Height 
= tb.ActualHeight + 8;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

                ButtonReflex.Width 
= tb.ActualWidth + 16;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

                ButtonReflex.Height 
= tb.ActualHeight + 8;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

                reflexClip.Rect 
= new rect(new Point(00), new Point(tb.ActualWidth + 16, (tb.ActualHeight + 8)/2));

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

             

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            }

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            
else//根据传入的参数设定控件的长度

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            {

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

                actControl.Height 
= this.Height;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

                actControl.Width 
= this.Width;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            }

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            left 
= (actControl.Width - tb.ActualWidth) / 2;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            top 
= (actControl.Height - tb.ActualHeight) / 2;

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            tb.SETVALue
<double>(Canvas.TopProperty, top);//设定文本在绘制面板中的坐标,也就是要使其在控件的中间位置。

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            tb.SETVALue
<double>(Canvas.LeftProperty, left);

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

        

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

        

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

        }

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


  这样一个控件就设计好了,那么如果使用这个控件呢?
 我们再添加一个 silverlight Project 。
 

@H_883_2404@


 我们在这个项目添加上先前建的控件库项目的引用。
 然后打开page.xaml文件对应的后台文件page.xaml.cs文件,在page_loaded事件里
 加上如下代码
 
 1

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

  double  top  =   100 ;
 2

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            
 3

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            
double  left  =   20 ;
 4

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


 5

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            SilverControls.txtBoxControl txtBox 
=   new  SilverControls.txtBoxControl();
 6

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


 7

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            txtBox.buttontex
=   " Hello! " ;
 8

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


 9

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            txtBox.SETVALue
< double > (Canvas.TopProperty, top);
10

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


11

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            txtBox.SETVALue
< double > (Canvas.LeftProperty, left);
12

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


13

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)

            
this .Children.Add(txtBox);
14

设计一个silverlight的textbox控件--silverlight(闪光)学习(1)


然后保存,在浏览器里查看textpage.html页面就可以了。
代码如下:
/Files/wangergo/silverlightControlSample.rar

 www.80back.com版权所有,首发cnblogs.com转载请著名出处。 

大佬总结

以上是大佬教程为你收集整理的设计一个silverlight的textbox控件--silverlight(闪光)学习(1)全部内容,希望文章能够帮你解决设计一个silverlight的textbox控件--silverlight(闪光)学习(1)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。