除非我誤解了這種情況,否則正是你所說的工作很好。我只是嘗試了一下與此XAML:
<Window x:Class="ConditionalTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<SolidColorBrush x:Key="MyColor" Color="Aqua" />
<VisualBrush x:Key="MyBrush">
<VisualBrush.Visual>
<Ellipse Height="50" Width="100" Fill="{DynamicResource MyColor}" />
</VisualBrush.Visual>
</VisualBrush>
</Window.Resources>
<Grid Background="{DynamicResource MyBrush}">
<Button Height="30" Width="Auto" VerticalAlignment="Center" HorizontalAlignment="Center" Content="ChangeColor" Click="Button_Click" />
</Grid>
</Window>
然後單擊處理程序改變了顏色,該按鈕:
private void Button_Click(object sender, RoutedEventArgs e)
{
((SolidColorBrush)Resources["MyColor"]).Color = Colors.Purple;
}
和它的工作就像一個冠軍。
感謝您 - 這不起作用,但是當資源是在資源字典中,這似乎是我的問題我將資源移動到Window.Resources像你的例子 - 這工作,但這必須是可用的類我的軟件 - 將編輯我的問題提到這 – RoguePlanetoid 2009-02-17 19:49:27
我的解決方案是存儲資源的Window.Resources作爲這個例子顯示,而不是像你的例子那樣工作 - 但仍然希望保留Resources.xaml中的所有資源,但它的工作原理,這是重要的。 – RoguePlanetoid 2009-02-24 10:36:19