silverlight如何访问控件模板里的控件

假设button控件应用了如下控件模板:

1.<ControlTemplate x:Key="StartActivity" TargetType="Button">
2. <Grid Width="Auto" Height="62" Margin="0,0,0,0">
3. <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">
4.
5. </TextBlock>
6. </Grid>
7. </ControlTemplate>

那么如果想在代码里访问模板里名为tbLabel的 TextBlock控件,该怎么写代码呢?

控件基类Control有个叫GetTemplateChild的方法,但是该方法是Protected型的,所以很显然,我们 必须继承基类并且重载OnApplyTemplate来调用该方法,如下:

1.public class ActivityControl : Button
2. {
3. public override void OnApplyTemplate()
4. {
5. base.OnApplyTemplate();
6.
7. //get the textblock control from template
8. TextBlock label = GetTemplateChild("tbLabel") as TextBlock;
9. }
10. }

时间: 2024-08-21 07:21:37

silverlight如何访问控件模板里的控件的相关文章

WPF 获取控件模板中的控件

问题描述 <toolkit:DataGridTemplateColumnWidth="35"><toolkit:DataGridTemplateColumn.HeaderTemplate><DataTemplate><CheckBoxName="cbbSelALL"Click="cbbSelALL_Click"/></DataTemplate></toolkit:DataGridT

学Silverlight 2系列(9):使用控件模板

本文为系列文章第九篇,主要介绍如何使用控件模板定制控件的观感. Silverlight提供了极其强大的功能,允许用户完全定制控件的外观. 定制控件内容 在Silverlight中,WatermarkedTextBox控件可以为用户的输入提供一段提示 信息,如果只是简单的一点文字信息,有时候未免显得单调,如果加上相应的图 片说明效果会更好,如下图所示的一个简单的用户登录界面: 这样看起来界面显的就生动多了,XAML声明如下: <Canvas Background="#46461F"

怎么在后台代码中访问ListView中&amp;amp;lt;EditItemTemplate&amp;amp;gt;模板中的控件?

问题描述 怎么在后台代码中访问ListView中<EditItemTemplate>模板中的控件?今天研究了很长时间,现在我可以通过以下后台代码访问<InsertItemTemplate>模板中控件:protectedvoidDropDownList1_SelectedIndexChanged(objectsender,EventArgse){DropDownListb=(DropDownList)ListView1.InsertItem.FindControl("Dro

对象-table模板里放个chart控件,然后放在repeater控件里,请问如何绑定chart?

问题描述 table模板里放个chart控件,然后放在repeater控件里,请问如何绑定chart? protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { System.Web.UI.DataVisualization.Charting.Chart ct = (System.Web.UI.DataVisualization.Charting.Chart)e.Item.FindContro

一步一步学Silverlight :使用控件模板

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性.<一步一步学Silverlight 2系列>文章带您快速进入Silverlight 2开发. 本文为系列文章第九篇,主要介绍如何使用控件模板定制控件的观感.Silverlight提供了极其强

wpf mvvm 模式的datagrid控件模板列的列头里的checkbox怎么在viewmodel里撤销勾选状态

问题描述 wpfmvvm模式的datagrid控件模板列的列头里的checkbox怎么在viewmodel里撤销勾选状态点击全选,点击下一页分以后全选框还是勾选状态,希望datagrid重新加载数据后模板的全选状态为未勾选, 解决方案 解决方案二:你需要编写勾选的点击事件,绑定只是用来显示而不是做动作处理,mvvm模式也需要后台事件处理的支持的.

我正在使用vs2008,使用了listview控件,在模板里添加了一个HyperLink,想用findcontrol找到这个控件,为什么找不到,提示没有HyperLink3这个控件

问题描述 <asp:ListViewID="ListView1"runat="server"DataSourceID="SqlDataSource1"GroupItemCount="4"><AlternatingItemTemplate><tdrunat="server"style="background-color:#FFF8DC;width:80px;height

关于asp.net里web控件的理解?

问题描述 最近课程设计做网站,在asp.net平台上,照着书用了几个web控件,我对它的理解是这样的:用c#语言作后台语言编写被vs运行后生成成html或者javascript语言再被浏览器解释执行(-或者说只用javascript和html也能实现相同的功能,不过vs上的web控件拖起来使用更加方便罢了)不知道这样理解对不对,求分析,谢谢. 解决方案 解决方案二:javascript和html是客户端的东西.而控件是服务端的类对象的东西.两个世界的东西,又怎么会一样呢.解决方案三:这么理解其实

AJAX.NET 中如何访问 UpdateProgress 控件中的元素(控件)?

问题描述 使用FindControl找不到任何东西.谢谢. 解决方案 解决方案二:先弄清楚Ajax是个什么.你见过FindControl可以找脚本的么解决方案三:嗯,谢谢.那UpdateProgress里的控件如何访问到?解决方案四:另外,ASP.NET的AJAX的确是有FindControl的.http://msdn.microsoft.com/zh-cn/library/system.web.ui.updateprogress.findcontrol.aspx---也许accpjiangwe