我写在WinXP一个WPF应用程序,我已重写与Vista主题默认的主题是这样的:覆盖重写WPF主题
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
var themerd = new ResourceDictionary();
themerd.Source = new Uri(@"PresentationFramework.Aero;V3.0.0.0;31bf3856ad364e35;component\themes/aero.normalcolor.xaml", UriKind.Relative);
Resources.MergedDictionaries.Add(themerd);
}
和正常工作居多。当我使用的控制,如按钮:
<Button />
风格看起来不错,但如果我用一个按钮有不同的风格是这样的:
<Button>
<Button.Style>
<Style TargetType="Button">
<Setter Property="Width" Value="80" />
</Style>
</Button.Style>
</Button>
的风格将覆盖指定主题风格标准的WinXP风格,而不是建立在它之上。这对我来说极其有限。有没有办法避免这个问题?
谢谢,你的回答非常有帮助。这个领域似乎缺乏WPF。你通常使用哪个选项来解决这个问题? – 2010-03-04 06:09:30
选项2非常酷,在某种程度上,它甚至可以解决没有使用BasedOn DynamicResources的问题。 – 2010-03-04 07:08:00
我通常通过向客户解释,坚持使用当前操作系统主题来解决问题,因为Windows对最终用户看起来是“正常”的。然而,在我需要重新定义UI的一部分但用户界面的内部部分(如Popup)* *不重新定义的情况下,我使用了选项2和选项3。 – 2010-03-04 14:48:23