Silverlight工具包 - 带主题的ChildWindow

时间:2011-04-27 14:09:00

标签: silverlight silverlight-4.0 silverlight-toolkit

在我发现的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 个答案:

答案 0 :(得分:3)

您必须在 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);