Набор инструментов Silverlight - ChildWindow с темой - PullRequest
2 голосов
/ 27 апреля 2011

Со страницы форума Silverlight, которую я нашел, у меня сложилось впечатление, что ChildWindow, созданный в коде , будет подбирать тему остальной части страницы;только когда вы наследуете от ChildWindow, это уже не так.

По какой-то причине, хотя это не происходит для меня.Вот мой элемент темы:

<wp:Theme x:Name="ThemeContainer" ThemeUri="/System.Windows.Controls.Theming.BubbleCreme;component/Theme.xaml"> 

А вот обработчик событий для кнопки, которую я использую, чтобы попытаться создать ChildWindow.Появляется окно, но к нему не применяется ни одна тема:

    private void Button_Click(object sender, RoutedEventArgs e) {
        ChildWindow cw = new ChildWindow() { Height = 250, Width = 200 };
        cw.Show();
    }

Есть ли способ заставить это работать?

1 Ответ

3 голосов
/ 27 апреля 2011

Вам нужно установить желаемую глобальную тему в App.xaml и объявить ее в качестве темы приложения:

<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
             x:Class="MyApp"
             xmlns:thm="MyThemeNamespace"
             thm:MyTheme.IsApplicationTheme="True"
             >
    <Application.Resources>

    </Application.Resources>
</Application>

Чтобы установить тему приложения динамически, вы можете попробовать статический

Theme.SetApplicationThemeUri(myApp, myThemeUri);
...