2008-09-19 4 views
0

현재 Silverlight 2.0 베타 2로 테스트 중이며, 목표는 리소스 요소를 한 번 정의한 다음 렌더링에서 여러 번 다시 사용하는 것입니다. 이 간단한 예제에서는 사각형 (myRect)을 리소스로 정의한 다음 두 번 다시 사용하려고합니다. 오류로 인해 실패합니다.Silverlight 2.0에서 StaticResource 재사용

특성 {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> 

여기에 대한 의견.

감사합니다,

- 정적 리소스로 정의 구성 요소를 재사용 할 때 에드

답변

2

는 또한 같은 문제가 발생했습니다. 내가 발견 한 해결 방법은 컨트롤을 리소스로 선언하는 것이 아니라 필요한 모든 속성을 설정하는 스타일을 정의하고 필요할 때마다 해당 스타일로 새 컨트롤을 인스턴스화하는 것입니다.

편집 : 이미 다른 컨테이너 안에있는 컨테이너에 컨트롤을 할당하면 예외가 발생합니다. 또한 다른 시나리오 (예 : 이미 하나의 객체에 스타일을 적용하는 경우)에서 발생하지만, 이것이 귀하의 경우라고 생각합니다.