2012-02-15 3 views
0

У меня есть Выражение Темная тема для всего Приложение WPF.Как отключить глобальную тему приложения WPF для пользовательского контроля?

<Application x:Uid="Application_1" x:Class="MyShow.Player.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      StartupUri="MainWindow.xaml" 
      SessionEnding="App_SessionEnding" > 
    <Application.Resources> 
     <ResourceDictionary x:Uid="ResourceDictionary_1" > 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary x:Uid="ResourceDictionary_3" Source="/Themes/ExpressionDark.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Application.Resources> 
</Application> 

Что у меня есть, что это выражение Dark относится ко всем пользовательским элементам управления (public partial class UControl : UserControl).

Что я хочу - использовать совершенно другую тему, например Aero или что-то еще для всех элементов управления WPF.

Как я могу это сделать?

Спасибо!

+0

определить «Элементы управления WPF» –

+0

@jberger Это открытый частичный класс UControl: UserControl –

ответ

2

Создайте событие запуска и установите тему в обработчике событий запуска. Эта тема будет применяться ко всем пользовательским элементам управления в этом решении. В твоем случае.

//App.xaml 

<Application x:Uid="Application_1" x:Class="MyShow.Player.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      StartupUri="MainWindow.xaml" 
      SessionEnding="App_SessionEnding" 
      Startup="Application_Startup"> 

//App.xaml.cs 

private void Application_Startup(object sender, StartupEventArgs e) 
     { 
      StyleManager.ApplicationTheme = new MetroTheme(); //Set your theme   
     } 
Смежные вопросы