Повторное использование StaticResource в Silverlight 2.0

StackOverflow https://stackoverflow.com/questions/102029

  •  01-07-2019
  •  | 
  •  

Вопрос

В настоящее время я тестирую Silverlight 2.0 Beta 2, и моя цель — один раз определить элемент ресурса, а затем многократно использовать его при рендеринге.В этом простом примере прямоугольник (myRect) определяется как ресурс, а затем я пытаюсь использовать его дважды, что приводит к ошибке:

Значение атрибута {StaticResource myRect} выходит за пределы допустимого диапазона.[Линия:9 позиция:83]

Кстати, этот образец отлично работает в WPF.

<UserControl x:Class="ReuseResourceTest.Page"
    xmlns="http://schemas.microsoft.com/client/2007" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="200" Height="200">
    <Canvas x:Name="LayoutRoot" Background="Yellow">
        <Canvas.Resources>
            <RectangleGeometry x:Key="myRect" Rect="25,50,25,50" />
        </Canvas.Resources>
        <Path Stroke="Black" StrokeThickness="10" Data="{StaticResource myRect}" />
        <Path Stroke="White" StrokeThickness="4"  Data="{StaticResource myRect}" />
    </Canvas>
</UserControl>

Есть какие-нибудь мысли о том, что здесь происходит.

Спасибо,

-- Эд

Это было полезно?

Решение

Я также столкнулся с той же проблемой при попытке повторного использования компонентов, определенных как статические ресурсы.Обходной путь, который я нашел, заключается не в объявлении элементов управления как ресурсов, а в определении стилей, задании всех необходимых вам свойств и создании экземпляра нового элемента управления с этим стилем каждый раз, когда вам нужно.

РЕДАКТИРОВАТЬ:Исключение вне диапазона, которое вы получаете, возникает, когда вы назначаете элемент управления контейнеру, который уже находится внутри другого контейнера.Это также происходит во многих других сценариях (например, при применении стиля к объекту, у которого он уже есть), но я думаю, что это ваш случай.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top