首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将同一样式两次设置为代码中的不同实例

将同一样式两次设置为代码中的不同实例
EN

Stack Overflow用户
提问于 2009-06-18 12:21:05
回答 2查看 180关注 0票数 1

我正在尝试重用形状数据,以便在代码中动态创建新的形状。基本上,我想做这个Reuse path object in XAML,但在代码中。情况如下:

代码语言:javascript
复制
        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应用程序的MainControl中。资源的XAML代码是

代码语言:javascript
复制
 <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>

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-30 06:58:14

看起来这确实是SL3 Beta中的一个bug,但是有人已经找到了绕过它的方法:

http://tozon.info/blog/post/2009/06/27/Countdown-to-Silverlight-3-2-Setting-styles.aspx

这将不再是一个问题,从7月12日,当SL 3击中RTM。

票数 2
EN

Stack Overflow用户

发布于 2009-06-18 12:47:51

太奇怪了..。我不明白为什么它第一次起作用,第二次失败。尝试使用中间变量而不是两次访问资源:

代码语言:javascript
复制
    Style style = (System.Windows.Style)this.Resources["PathStyle"];
    Path path = new Path();
    path.Style = style;
    Path path2 = new Path();
    path2.Style = style;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1012334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档