C# 为代码中的不同实例设置两次相同样式
我正在尝试重用形状数据,以便在代码中动态创建新的形状。基本上我想这样做,但在代码。情况如下:C# 为代码中的不同实例设置两次相同样式,c#,silverlight-3.0,C#,Silverlight 3.0,我正在尝试重用形状数据,以便在代码中动态创建新的形状。基本上我想这样做,但在代码。情况如下: Path path = new Path(); path.Style = (System.Windows.Style)this.Resources["PathStyle"]; Path path2 = new Path(); path2.Style = (System.Windows.Style)this.Resources["PathSt
Path path = new Path();
path.Style = (System.Windows.Style)this.Resources["PathStyle"];
Path path2 = new Path();
path2.Style = (System.Windows.Style)this.Resources["PathStyle"];
但是我在第四行得到一个ArgumentException,它说“值不在预期范围内”
该代码位于SL 3应用程序的主控件中。
资源的XAML代码为
<UserControl.Resources>
<Style x:Key="PathStyle" TargetType="Path">
<Setter Property="Data" Value="M63,171 L138,117 L168,189 L99,219"/>
<Setter Property="Fill" Value="#FFF07E7E"/>
<Setter Property="Height" Value="103"/>
<Setter Property="Width" Value="106"/>
<Setter Property="Stroke" Value="#FF000000"/>
<Setter Property="Stretch" Value="Fill"/>
</Style>
</UserControl.Resources>
有什么想法吗?真奇怪。。。我不明白为什么它第一次工作,第二次失败。尝试使用中间变量,而不是两次访问资源:
Style style = (System.Windows.Style)this.Resources["PathStyle"];
Path path = new Path();
path.Style = style;
Path path2 = new Path();
path2.Style = style;
看来这确实是SL3测试版中的一个bug,但有人找到了解决方法: 从7月12日开始,当SL3点击RTM时,这将不再是一个问题