在我发现的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();
}
有什么方法可以让它发挥作用吗?
答案 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);