Установка одного и того же стиля дважды для разных экземпляров кода - PullRequest
1 голос
/ 18 июня 2009

Я пытаюсь повторно использовать данные формы для динамического создания новых фигур в коде. В основном я хочу сделать это Повторно использовать объект пути в 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 в четвертой строке, говоря " Значение не попадает в ожидаемый диапазон"

Код находится в MainControl приложения 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>

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 30 июня 2009

Похоже, что это действительно ошибка в бета-версии SL3, но кто-то нашел способ ее обойти:

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

Больше не будет проблем с 12 июля, когда SL 3 достигнет RTM.

0 голосов
/ 18 июня 2009

Это странно ... Я не понимаю, почему это сработало бы в первый раз и провалилось во второй раз.Попробуйте использовать промежуточную переменную вместо доступа к ресурсам дважды:

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