如何每5秒异步应用不同的ResourceDictionary样式?

时间:2014-02-04 16:56:52

标签: c# wpf xaml mahapps.metro

下面是代码,我想在其中更改MahApps.Metro pakage的主题颜色。

可以通过更改MahApps的ResourceDictionary源包来更改它。 [/MahApps.Metro ;component/Styles/Accents/Blue.xaml]

现在说它的/Blue.xaml示例......我们可以改变窗口的颜色。到/Red.xaml,/ Yellow.xaml等

那么如何每隔5秒异步更改窗口的颜色?这可能在wpf?

我是wpf和clueless的新手。

  <controls:MetroWindow x:Class="NginX.Choose"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
    Title="NginX" Height="350" Width="350" ShowMaxRestoreButton="False">
<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>

         <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />

        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>
<Grid>

</Grid>
</controls:MetroWindow>

1 个答案:

答案 0 :(得分:0)

您可以通过执行以下操作来替换应用程序的资源字典:

Application.Current.Resources.Clear()
Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary()
{
   Source = new Uri("pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml")
});

将它放入计时器并循环通过Red.xaml,Blue.xaml等