如何在后面的代码(WPF)中设置Style basedOn? 请帮我 ... 我的代码不起作用...... 错误==>使用'SetterBaseCollection'后无法修改。 这是我的代码的一部分。
public Style SettingStyle(Style sty, double fs)
{
Style baseStyle = new Style(sty.TargetType);
Style newStyle = Application.Current.TryFindResource(sty.TargetType) as Style;
// Style newStyle = new Style();
// newStyle.BasedOn = new Style(newStyle.TargetType, baseStyle);
newStyle.Setters.Add(new Setter(Control.FontSizeProperty, fs));
if (newStyle.Setters.Count > 1)
{
newStyle.Setters.Add(sty.Setters[1]);
newStyle.Setters.Add(sty.Setters[2]);
if (newStyle.Setters.Count > 3)
{
newStyle.Setters.Add(sty.Setters[3]);
}
}
return newStyle;
}
答案 0 :(得分:0)
您可以将baseStyle
设置为属性或构造函数:
newStyle.BasedOn = baseStyle;
或
Style newStyle = new Style(targetType, baseStyle);
在你的情况下可能是
public Style SettingStyle(Style sty, double fs)
{
// Return a base type for "TargetType"
Style baseStyle = Application.Current.TryFindResource(sty.TargetType) as Style;
Style newStyle = new Style(sty.TargetType, baseStyle);
newStyle.Setters.Add(new Setter(Control.FontSizeProperty, fs));
return newStyle;
}
或
public Style SettingStyle(Style sty, double fs)
{
//Use style passed to the function(sty) as a baseStyle for new style
Style newStyle = new Style(sty.TargetType, sty);
newStyle.Setters.Add(new Setter(Control.FontSizeProperty, fs));
return newStyle;
}
这取决于你想要达到的目的。