2009-06-18 2 views
1

코드에서 새 셰이프를 동적으로 만들기 위해 셰이프 데이터를 다시 사용하려고합니다. 기본적으로 나는이 코드를 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"]; 

는하지만 난

코드는 SL 3의 MainControl에 "값이 예상 범위를 벗어하지 않습니다"라는 네 번째 회선에 자동 ArgumentException이를 얻을 수 신청. 자원에 대한 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> 

어떤 아이디어인가?

+0

내부 예외는 무엇입니까? – Will

답변

0

이상한 ... 나는 그것이 처음으로 작동하고 두 번째 실패하는 이유를 알 수 없습니다. 대신 두 번 자원에 접근의 중간 변수를 사용하려고 :

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

여전히 같은 오류가 발생합니다. –

관련 문제