WPF资源 - 共享?

时间:2014-11-01 07:30:40

标签: c# .net wpf

据我所知按钮不创建新实例,它使用共享资源。 为什么按钮的背景为蓝色而不是红色?

XAML:

<StackPanel Name="st">
        <Button Margin="50" Name="btn" Height="50">Click</Button>
    </StackPanel>

代码背后:

st.Resources.Add("Back", Brushes.Blue);
       btn.Background = (Brush)btn.TryFindResource("Back");
       st.Resources["Back"] = Brushes.Red;

1 个答案:

答案 0 :(得分:1)

设置Background后,它只是一种快照。之后更改资源不会更改Background。您必须使用SetResourceReference方法使用某种设置资源引用,如下所示:

st.Resources.Add("Back", Brushes.Blue);                
btn.SetResourceReference(Control.BackgroundProperty, "Back");
st.Resources["Back"] = Brushes.Red;