내가 표현 내 XAML에서 두 개의 자원 스타 반 스타가 :C#에서 XAML에 정의 된 리소스 항목의 여러 복사본을 추가하는 방법은 무엇입니까?
I는 등급을 나타내는 내 C# 코드에서 ItemsControl에로의 몇 가지를 추가 할<Path x:Key="HalfStar" Margin="2" Height="48" Stretch="Uniform"
Data="M12.763,0 L12.763499,18.546873 L4.8750005,24.277998 L7.887928,15.004692 L0,9.273982 L9.7000046,9.273982 z" F
ill="Blue/>
<Path x:Key="FullStar" Margin="2" Height="48" Stretch="Uniform"
Data="M12.763,0 L15.824005,9.2739811 L25.527,9.2739811 L17.638763,15.004915 L20.652,24.278 L12.763499,18.546873 L4.8750005,24.277998 L7.887928,15.004692 L0,9.273982 L9.7000046,9.273982 z"
Fill="Blue"/>
그래서 나는 속성을 할당을 "경로"유형의 내 C# 코드 아래 참조 : "요소가 이미 다른 사람의 자식 :하지만 매번
Main.FullStar = ((Path)Resources["FullStar"]);
Main.HalfStar = ((Path)Resources["HalfStar"]);
을 그리고 ItemsControl에에 별을 추가하려면 다음을 사용하여 나는 다음과 같은 XAML 오류 얻을 이렇게 요소 ". 그러나 만약 내가 간단한 코드 예제에서 간단한 객체를 인스턴스화한다면 서클 나는 내가 원하는만큼 이것을 추가 할 수있다.
이 문제는 C#에서 정의 된 버전에서 사용되는 Named Key 경로 때문에 발생합니다. 따라서이 경우에는 오류가 발생하지만 필요에 따라 많은 FullStars 및 HalfStars를 추가하려고합니다. 관심있는 데이터. Geometry.Parse 메서드를 사용 하겠지만 Windows Phone의 Silverlight에는 존재하지 않습니다.
"HalfStar"및 "FullStar"라는 리소스를 사용하여 ItemsControl에 추가 할 수 있도록하려면 코드 추가 부분에서 추가 작업을 수행해야하지만 별 및 항목 컨트롤은 XAML에 정의되어 있어야합니다 . 내 유일한 해결책은 서클을 대신 사용하는 것입니다.하지만 필요한 리소스가 있다고 생각하면 부족합니다. XAML의 ItemsControl에 복사하여 붙여 넣으면 잘 보일 수 있습니다. 현재 리소스 중 하나라도 추가 할 수 없습니다. 플랫폼의 한계로 인해 C#에서이를 정의 할 수 없습니다.
흥미 롭긴하지만 PathGeometry 요소에 경로 데이터를 저장하는 것은 Silverlight에서 지원되지 않습니다. – RoguePlanetoid
실무 솔루션에 대한 내 대답을 업데이트했습니다. –
UserControl은 이것을 게시하기 전에이 점을 완벽하게 생각했지만 문제점을 해결했습니다. 언급 한 등급 제어를 사용하는 것으로 생각했지만 단순한 애플리케이션에만 등급을 표시해야합니다. – RoguePlanetoid