首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

一个关于silverlight中动态改变style中的值的有关问题

2012-05-30 
请教大家一个关于silverlight中动态改变style中的值的问题样式代码如下XML codeStylex:KeyStyle2 Targ

请教大家一个关于silverlight中动态改变style中的值的问题
样式代码如下

XML code
<Style  x:Key="Style2" TargetType="Primitives:DataGridColumnHeader">            <Setter Property="Foreground" Value="Red"/>            <Setter Property="FontSize" Value="15"/>            <Setter Property="Template">                <Setter.Value>                    <ControlTemplate TargetType="Primitives:DataGridColumnHeader">                        <Border Name="aaa" Background="Gold" Width="50">                            <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>                        </Border>                    </ControlTemplate>                </Setter.Value>            </Setter>        </Style>


我想在后台c#代码中改变ControlTemplate 中名为'aaa'的border的width的值,应该怎么弄?
我自己写了一段;
C# code
 public static DependencyProperty BorderProperty = DependencyProperty.Register("Border", typeof(Border), typeof(MainPage), null); Style style = this.Resources["Style2"] as Style;            SetterBaseCollection setterBaseCollection = style.Setters;            Setter setter = setterBaseCollection[2] as Setter;            ControlTemplate controlTemplate = setter.Value as ControlTemplate;            object c = controlTemplate.GetValue(BorderProperty );

但是在获取controlTemplate.GetValue(BorderProperty )时老是取到null,BorderProperty 应该怎么写,这种方法可以改变aaa的width的值吗,或者还有另外的方法?
谢谢

[解决办法]
你那个style是针对Primitives:DataGridColumnHeader类型的,而你的BorderProperty是针对MainPage的,两个根本没什么关系啊?怎么会取得到?
[解决办法]
如果你的控件是从Control派生的

有个方法可以获得模板里的控件

GetTemplateChild("Name");

热点排行