据我所知按钮不创建新实例,它使用共享资源。 为什么按钮的背景为蓝色而不是红色?
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;
答案 0 :(得分:1)
设置Background
后,它只是一种快照。之后更改资源不会更改Background
。您必须使用SetResourceReference
方法使用某种设置资源引用,如下所示:
st.Resources.Add("Back", Brushes.Blue);
btn.SetResourceReference(Control.BackgroundProperty, "Back");
st.Resources["Back"] = Brushes.Red;