更改style-setter-property

时间:2013-03-01 10:37:12

标签: c# windows-phone-7 xaml styles setter

我在下面的代码与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并且应用程序中断...

1 个答案:

答案 0 :(得分:2)

这实际取决于Style所在的位置,您需要使用x:Key来查找样式而不是x:Name

如果样式位于您的应用程序资源(App.xaml)中,则应该可以使用

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

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

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