change style-setter-property

本文关键字:style-setter-property change | 更新日期: 2023-09-27 18:01:37

我有下面的代码是非常简单的样式资源在wp7,

<Style x:Name="image_find" x:Key="ImageFind1" TargetType="Image">
     <Setter Property="Source" Value="display/pen.png"/>
</Style>

我想改变setter的源值,例如。"display/tool.png"当我想在我的应用程序的代码旁边运行时,请记住,我需要图像的风格:)

我正在运行这样的东西,

image_find.Setters.SetValue(Image.SourceProperty, "display/tool.png");

或者类似的

style = App.Current.Resources["image_find1"] as Style;    
style.Setters.SetValue(Image.SourceProperty, "display/tool.png");`

和我得到NullReferenceException和应用程序中断…

change style-setter-property

这真的取决于你的Style在哪里,你需要使用x:Key来找到风格,而不是x:Name

如果样式是在你的应用程序资源(App.xaml),这应该工作

   var style = App.Current.Resources["ImageFind1"] as Style;

如果它在你的Window/UserControl的上下文中,你将使用FindResource

   var style = FindResource("ImageFind1") as Style;