在上述自定义控件MySilverButton内部,我们有Rectangle(名为BodyElement)和TextBlock (名为ButtonCaption)两个内部成员,如果要对其操作,我们需要用到 GetTemplateChild 函数来达到目的。
在此,我们以修改TextBlock的Text属性值。加入代码到SimpleButton_MouseLeftButtonUp事件中
void SimpleButton_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (Click != null)
{
Click(this, new RoutedEventArgs());
TextBlock BgTextBlock = (sender as MySilverButton). ("ButtonCaption") as TextBlock;
BgTextBlock.Text = "修改显示文本";
}
} MySilverButton.cs完整代码如下:
using System;
using System.Net;
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 MyDesignButton
{
public class MySilverButton: ContentControl
{
public event RoutedEventHandler Click; //添加Click事件
public MySilverButton()
{
this.DefaultStyleKey = typeof(MySilverButton);
this.MouseLeftButtonUp += new MouseButtonEventHandler(SimpleButton_MouseLeftButtonUp); //添加Click事件
}
//添加Click事件
void SimpleButton_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (Click != null)
{
Click(this, new RoutedEventArgs());
TextBlock BgTextBlock = (sender as MySilverButton). ("ButtonCaption") as TextBlock;
BgTextBlock.Text = "修改显示文本";
}
}
}
}
在此,我们以修改TextBlock的Text属性值。加入代码到SimpleButton_MouseLeftButtonUp事件中
void SimpleButton_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (Click != null)
{
Click(this, new RoutedEventArgs());
TextBlock BgTextBlock = (sender as MySilverButton). ("ButtonCaption") as TextBlock;
BgTextBlock.Text = "修改显示文本";
}
} MySilverButton.cs完整代码如下:
using System;
using System.Net;
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 MyDesignButton
{
public class MySilverButton: ContentControl
{
public event RoutedEventHandler Click; //添加Click事件
public MySilverButton()
{
this.DefaultStyleKey = typeof(MySilverButton);
this.MouseLeftButtonUp += new MouseButtonEventHandler(SimpleButton_MouseLeftButtonUp); //添加Click事件
}
//添加Click事件
void SimpleButton_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (Click != null)
{
Click(this, new RoutedEventArgs());
TextBlock BgTextBlock = (sender as MySilverButton). ("ButtonCaption") as TextBlock;
BgTextBlock.Text = "修改显示文本";
}
}
}
}
重新生成,并回到MySLbutton项目运行测试,可看到结果。
下一篇:
SilverLight学习笔记--建立Silverlight自定义控件(4)--添加自定义属性
来源:https://www.cnblogs.com/wsdj-ITtech/archive/2009/07/17/1525411.html