WPF资源-共享

本文关键字:共享 资源 WPF | 更新日期: 2023-09-27 18:28:37

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

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;

WPF资源-共享

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

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