为了测试自定义控件,需要新建一个Silverlight项目,在解决方案资源管理器上右击鼠标,选择“添加|新建项目”,为测试Silverlight项目命名为TestingDemo。
添加对mySampleControls类库项目的引用,并为XAML文件指定自定义控件的命名空间,然后像使用SDK中的控件一样声明自定义控件,XAML代码如下所示。
<Canvas x:Name="parentCanvas"
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Loaded="Page_Loaded"
x:Class="TestingDemo.Page;assembly=ClientBin/TestingDemo.dll"
xmlns:uicontrol="clr-namespace:mySampleControls;assembly=ClientBin/mySampleControls.dll"
Width="640"
Height="480"
Background="White"
>
<uicontrol:MyLabel x:Name="msg" Text="Hello" LabelColor="Blue" BackColor="Yellow" Width="20" Height="20" Canvas.Left="200" Canvas.Top="100"></uicontrol:MyLabel>
</Canvas>
接下来在代码后置文件中添加如下所示的代码:
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;
namespace TestingDemo
{
public partial class Page : Canvas
{
public void Page_Loaded(object o, EventArgs e)
{
// Required to initialize variables
InitializeComponent();
//添加自定义控件的单击事件
msg.Click += new EventHandler(msg_Click);
}
//处理单击事件
void msg_Click(object sender, EventArgs e)
{
msg.LabelColor = new SolidColorBrush(Colors.Red);
}
}
}
示例运行效果如图所示。
当鼠标移动到Hello文字上方时,文本会添加下划线,以形成超链接效果。可以在测试项目中直接调试控件,在控件代码中设置断点,测试项目运行时会自动跳到指定的断点处进行调试。