【发布时间】:2011-01-09 17:37:59
【问题描述】:
更新
我很尴尬地说我犯了一个错误。错误是我的主题没有设置我用来测试的元素的样式,所以我当然没有看到应用的样式。
但是,对这个问题的回答确实显示了如何将资源从一个 UserControl 显式设置到另一个......这很有趣。
当我按照下面描述的方式在应用程序上设置资源时,它确实会在结果应用程序中隐式设置所有用户控件主题。
我正在使用一个主题,在我的主应用程序类上设置为 ResourceDictionary。我猜我的主窗口隐含地使用这个主题来设置自己的样式。
<Application>
<Application.Resources>
<ResourceDictionary Source="Themes/ExpressionDark.xaml" />
下面的cmets是错误的,一切都是隐式的
但是,当我显示一个对话框时,它没有样式。
DialogBox dialog = new DialogBox();
dialog.ShowDialog();
是否有某种方法可以隐式执行此操作,而无需在 DialogBox 的 XAML 中显式指定样式?
编辑
我尝试通过以下方式设置资源。他们没有工作。
Window main = App.Current.Windows[0];
dialog.Resources = main.Resources;
dialog.Owner = main;
还尝试从主应用程序设置...这是定义原始资源的位置。
dialog.Resources = App.Current.Resources;
【问题讨论】: