WP8.1 在 c# 中设置背景 属性 样式 setter
WP8.1 Setting background property Style setter in c#
我正在开发 Windows Phone 8.1 应用程序。
我正在使用 c# 代码来尝试更改资源字典中的值。
所以我尝试 Style.setValue 方法,但它发生错误。
var selectedEllipseColor = (Ellipse)sender;
SolidColorBrush selectedColor = (SolidColorBrush)selectedEllipseColor.Fill;
String colorString = selectedColor.Color.ToString(); // Ex) #FFFFFF
Style backgroundGridStyle = Application.Current.Resources["gridBackgroundStyle"] as Style;
// ERROR!
//backgroundGridStyle.Setters.Add(new Setter(Grid.BackgroundProperty, "red"));
// ERROR too.
backgroundGridStyle.SetValue(Grid.BackgroundProperty, selectedColor);
这是错误信息。 : 灾难性故障(HRESULT 异常:0x8000FFFF (E_UNEXPECTED))
有什么问题?
backgroundGridStyle.Setters.Add(new Setter(Grid.BackgroundProperty,new SolidColorBrush( Colors.Red)));
使用上面的代码,因为你不能直接将值作为字符串分配给颜色属性。
例如:
即使我在为以下边框样式设置边框刷/角 radius/border 厚度时也遇到了同样的错误:
Style x = this.Resources["BorderStyle"] as Style;
x.Setters.Add(new Setter(Border.CornerRadiusProperty, "25"));
x.Setters.Add(new Setter(Border.BorderThicknessProperty, "10"));
x.Setters.Add(new Setter(Border.BorderBrushProperty,"Red")));
但是像这样更新代码:
Style x = this.Resources["BorderStyle"] as Style;
x.Setters.Add(new Setter(Border.CornerRadiusProperty, new CornerRadius(25)));
x.Setters.Add(new Setter(Border.BorderThicknessProperty, new Thickness(10)));
x.Setters.Add(new Setter(Border.BorderBrushProperty,new SolidColorBrush( Colors.Red)));
它将解决所有这些问题。
我正在开发 Windows Phone 8.1 应用程序。 我正在使用 c# 代码来尝试更改资源字典中的值。 所以我尝试 Style.setValue 方法,但它发生错误。
var selectedEllipseColor = (Ellipse)sender;
SolidColorBrush selectedColor = (SolidColorBrush)selectedEllipseColor.Fill;
String colorString = selectedColor.Color.ToString(); // Ex) #FFFFFF
Style backgroundGridStyle = Application.Current.Resources["gridBackgroundStyle"] as Style;
// ERROR!
//backgroundGridStyle.Setters.Add(new Setter(Grid.BackgroundProperty, "red"));
// ERROR too.
backgroundGridStyle.SetValue(Grid.BackgroundProperty, selectedColor);
这是错误信息。 : 灾难性故障(HRESULT 异常:0x8000FFFF (E_UNEXPECTED))
有什么问题?
backgroundGridStyle.Setters.Add(new Setter(Grid.BackgroundProperty,new SolidColorBrush( Colors.Red)));
使用上面的代码,因为你不能直接将值作为字符串分配给颜色属性。
例如:
即使我在为以下边框样式设置边框刷/角 radius/border 厚度时也遇到了同样的错误:
Style x = this.Resources["BorderStyle"] as Style;
x.Setters.Add(new Setter(Border.CornerRadiusProperty, "25"));
x.Setters.Add(new Setter(Border.BorderThicknessProperty, "10"));
x.Setters.Add(new Setter(Border.BorderBrushProperty,"Red")));
但是像这样更新代码:
Style x = this.Resources["BorderStyle"] as Style;
x.Setters.Add(new Setter(Border.CornerRadiusProperty, new CornerRadius(25)));
x.Setters.Add(new Setter(Border.BorderThicknessProperty, new Thickness(10)));
x.Setters.Add(new Setter(Border.BorderBrushProperty,new SolidColorBrush( Colors.Red)));
它将解决所有这些问题。