我的 MyResourceDictionary.xaml 文件中有模板
<ControlTemplate TargetType="{x:Type Button}" x:Key="ImageButtonTemplatepurpleSmall" >
<Grid>
<Image Source="images\button_purple_up_76.jpg" Name="image" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="image" Property="Source" Value="images\button_purple_hover_76.jpg" />
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter TargetName="image" Property="Source" Value="images\button_purple_depressed_76.jpg" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
现在将图像应用于按钮 我只想像这样在网格内更改此图像的图像源 这就是我试过的
Image RecTangleObj = (Image)btnBack.Template.FindName("image", btnBack);
但有些如何总是返回null值如何更改这个的图像源? 的更新
public override void OnApplyTemplate()
{
//base.OnApplyTemplate();
//Image RecTangleObj = (Image)btnBack.Template.FindName("image", btnBack);
//if (RecTangleObj != null)
//{
//}
}
答案 0 :(得分:2)
当在屏幕上没有呈现子内容时,将调用窗口的OnApplyTemplate。
将此代码放在Loaded
事件中,它会正常工作。