Silverlight 2.0에서 StaticResource 재사용
-
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>
여기에 무슨 일이 일어나고 있는지에 대한 어떤 생각.
감사해요,
-- 에드
해결책
정적 리소스로 정의된 구성 요소를 재사용하려고 할 때도 동일한 문제가 발생했습니다.내가 찾은 해결 방법은 컨트롤을 리소스로 선언하는 것이 아니라 필요한 모든 속성을 설정하는 스타일을 정의하고 필요할 때마다 해당 스타일로 새 컨트롤을 인스턴스화하는 것입니다.
편집하다:범위를 벗어난 예외는 이미 다른 컨테이너 안에 있는 컨테이너에 컨트롤을 할당할 때 발생합니다.이는 다른 많은 시나리오(예: 이미 스타일이 있는 개체에 스타일을 적용하는 등)에서도 발생하지만 이것이 귀하의 경우라고 생각합니다.
제휴하지 않습니다 StackOverflow