2010-09-02 66 views
3

所以我一直想有一段時間讓主題化Silverlight中工作4應用的主題使用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

您是否嘗試過在app.xaml中添加資源字典? – 2010-09-02 15:01:25

+0

我嘗試在app.xaml中放置命名空間定義(xmlns:shinyRed =「)...但是,我需要做的是什麼?似乎沒有工作。 – 2010-09-02 15:04:39

回答

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主題,創建一個名爲ShinyRed.xaml一個單一的樣式文件(你可以簡單地按照每個文件包括把一切在一個文件中)

所以在你的App.xaml引用這個新創建的xaml和它是編譯和運行!

<Application.Resources> 
     <ResourceDictionary> 

      <ResourceDictionary.MergedDictionaries>     
       <ResourceDictionary Source="Assets/ShinyRed.xaml"/> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Application.Resources> 
相關問題