silverlight之How To:访问控件模板里的控件
2009-09-18 11:58
423 查看
假设button控件应用了如下控件模板:
<ControlTemplate x:Key="StartActivity" TargetType="Button">
<Grid Width="Auto" Height="62" Margin="0,0,0,0">
<TextBlock Height="0" Margin="0,0,0,0" VerticalAlignment="Bottom" Text="" TextWrapping="Wrap" x:Name="tbLabel" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" Foreground="#FF0507FA">
</TextBlock>
</Grid>
</ControlTemplate>
那么如果想在代码里访问模板里名为tbLabel的TextBlock控件,该怎么写代码呢?
控件基类Control有个叫GetTemplateChild的方法,但是该方法是Protected型的,所以很显然,我们必须继承基类并且重载OnApplyTemplate来调用该方法,如下:
public class ActivityControl : Button
{
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
//get the textblock control from template
TextBlock label = GetTemplateChild("tbLabel") as TextBlock;
}
}
<ControlTemplate x:Key="StartActivity" TargetType="Button">
<Grid Width="Auto" Height="62" Margin="0,0,0,0">
<TextBlock Height="0" Margin="0,0,0,0" VerticalAlignment="Bottom" Text="" TextWrapping="Wrap" x:Name="tbLabel" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" Foreground="#FF0507FA">
</TextBlock>
</Grid>
</ControlTemplate>
那么如果想在代码里访问模板里名为tbLabel的TextBlock控件,该怎么写代码呢?
控件基类Control有个叫GetTemplateChild的方法,但是该方法是Protected型的,所以很显然,我们必须继承基类并且重载OnApplyTemplate来调用该方法,如下:
public class ActivityControl : Button
{
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
//get the textblock control from template
TextBlock label = GetTemplateChild("tbLabel") as TextBlock;
}
}
相关文章推荐
- silverlight之How To:访问控件模板里的控件
- silverlight之How To:设置ComboBox控件的数据源当ComboBox用来作为DataGrid的某列的编辑控件时
- silverlight之How To:设置ComboBox控件的数据源当ComboBox用来作为DataGrid的某列的编辑控件时
- How to obtain access to an ActiveX control from its property page 如何从一个控件的属性页中获取对该控件的访问?
- Silverlight教程第七部分: 使用控件模板定制控件的观感
- symbian 符合控件 滚动条How to Create a Scrollable Container
- 访问grid view模板控件的一段例子
- silverlight之How To:格式化DataGrid里的列显示
- How to disable SSL certificate checking with Spring RestTemplate?(使用resttemplate访问https时禁用证书检查)
- 一步一步学Silverlight 2系列(9):使用控件模板
- 如何组织编写模板程序 (How To Organize Template Source Code)
- How to access SMTP/POP server using telnet - 用 Telnet 如何访问邮件服务器
- Silverlight教程第七部分: 使用控件模板定制控件的观感
- 一步一步学Silverlight 2系列(9):使用控件模板
- 访问formview模板内控件
- How to Scale your Silverlight Control
- Silverlight 2 跨域访问控件与WebService的资料整理
- 如何访问Azure上的SharePoint 网站(How to access the SharePoint site of Azure)
- How to Embed Silverlight Content in HTML
- Silverlight 中得到控件模板中的子控件