Как подавить глобальную тему приложения WPF для контроля пользователей? - PullRequest
0 голосов
/ 15 февраля 2012

У меня есть Тема Expression Dark для всего приложения 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>

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

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

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

Спасибо!

1 Ответ

2 голосов
/ 15 февраля 2012

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

//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           
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...