我正在尝试重用形状数据以在代码中动态创建新形状。基本上我想在代码中执行此操作Reuse path object in XAML。情况如下:
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 ,说“ Value不在预期的范围内”
代码位于SL 3应用程序的MainControl中。 资源的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>
有什么想法吗?
答案 0 :(得分:2)
看起来这确实是SL3 Beta中的一个错误,但有人找到了解决方法:
http://tozon.info/blog/post/2009/06/27/Countdown-to-Silverlight-3-2-Setting-styles.aspx
从7月12日开始,当SL 3遇到RTM时,这将不再是一个问题。
答案 1 :(得分:0)
这很奇怪......我不明白为什么它会第一次起作用而第二次失败。尝试使用中间变量而不是两次访问资源:
Style style = (System.Windows.Style)this.Resources["PathStyle"];
Path path = new Path();
path.Style = style;
Path path2 = new Path();
path2.Style = style;