我希望能夠從我的WPF窗口中的.cs文件設置樣式屬性(和值)。在Code Behind中動態更改XAML樣式,以便應用該樣式的控件也反映更改
我的問題是如果我有30個矩形,所有我想要有相同的樣式(我不想單獨更新所有)。我希望將它們都設置爲(在xaml文件中)相同的樣式,然後更新樣式以按照我喜歡的方式進行。
說我在每個矩形的Xaml中設置了Style = "key1"
。然後,我希望能夠稍後修改「key1」,以便所有矩形都能反映這種變化。
我App.xaml
<Application.Resources>
<Style x:Key="key1" TargetType="Rectangle">
<Setter Property="Fill" Value="Red"/>
</Style>
</Application.Resources>
試圖在MainwWindows.xaml
<StackPanel>
<Rectangle Style="{StaticResource key1}" Height="200" Width="200" x:Name="rect1"/>
<Button Click="Button_Click" Content="Click"/>
</StackPanel>
在後面的代碼
private void Button_Click(object sender, RoutedEventArgs e)
{
Style style = Application.Current.Resources["key1"] as Style;
style.Setters.Add(new Setter(Rectangle.VisibilityProperty, Visibility.Collapsed));
}
這個更新的風格,但不更新矩形。
這可能嗎?有誰知道如何做到這一點? (一個例子將不勝感激)。
我認爲你必須調用UI元素(整個窗口或矩形)上的Update()或Refresh()方法。試試看,可能會有所幫助。 – stukselbax 2012-04-27 05:50:33