【问题标题】:Setting same style twice to different instances in code在代码中为不同的实例设置两次相同的样式
【发布时间】:2009-06-30 14:58:14
【问题描述】:

我正在尝试重用形状数据以在代码中动态创建新形状。基本上我想在代码中做到这一点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 说“值不在预期范围内”

代码位于 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>

有什么想法吗?

【问题讨论】:

    标签: c# silverlight-3.0


    【解决方案1】:

    这似乎确实是 SL3 Beta 中的一个错误,但有人找到了解决方法:

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

    从 7 月 12 日 SL 3 到 RTM 时,这将不再是问题。

    【讨论】:

      【解决方案2】:

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

          Style style = (System.Windows.Style)this.Resources["PathStyle"];
          Path path = new Path();
          path.Style = style;
          Path path2 = new Path();
          path2.Style = style;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多