首页 文章

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

提问于
浏览
0

下面是代码,我想在其中更改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

    您可以通过执行以下操作来替换Application的资源字典:

    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等

相关问题