所以我一直试图让他们在Silverlight 4中工作。
我添加了对System.Windows.Controls.Theming.Toolkit和System.Windows.controls.Theming.ShinyRed的引用
然后我去做了这样的事情:
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:dataInput="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input" xmlns:WebbyDraw="clr-namespace:WebbyDraw" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" x:Class="SilverlightApplication1.MainPage"
Width="960" Height="700" mc:Ignorable="d"
xmlns:shinyRed="clr-namespace:System.Windows.Controls.Theming;assembly=System.Windows.Controls.Theming.ShinyRed" >
<shinyRed:ShinyRedTheme>
<Grid x:Name="LayoutRoot2">
....
</Grid>
</shinyRed:ShinyRedTheme>
</UserControl>
但我总是得到同样的旧主题......没有错误,但也没有任何反应。我还尝试过Silverlight 4工具包中的其他主题,并尝试将其应用于单个控件......没有...我做错了什么?我已经阅读了几个教程,但没有找到答案。
答案 0 :(得分:0)
这是我使用主题的方式,我也允许我的用户更改为他们喜欢的主题 -
您可以将ShinyRed.xaml替换为任何其他样式资源文件以支持多个主题,也可以通过编程方式完成(删除一个资源字典并添加另一个)。
在您的用户控件xmal
中xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit"
<toolkit:Theme x:Name="ThemeContainer">
<Grid x:Name="LayoutRoot">
... all other controls in the page
</Grid>
复制闪亮主题所需的所有画笔和字体,并创建一个名为ShinyRed.xaml的样式文件(您只需按照每个文件中的包含将其全部放在一个文件中)
所以在App.xaml中引用这个新创建的xaml adn,即编译并运行!
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/ShinyRed.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>