2012-01-12 2 views
6

나는 더 큰 규모의 Silverlight 4 프로젝트의 개발 과정에서 GUI의 여러 부분에 걸쳐 사용해야하는 심볼 집합을 가지고 있습니다 (아래 예제 참조).큰 프로젝트에서 아이콘 (xaml-paths)을 재사용하는 방법은 무엇입니까?

이러한 아이콘은 Blend에서 여러 경로로 직접 만들어지며 하나 또는 두 개의 컨텍스트에서 동일한 아이콘이 사용되는 usercontrols에서 다른 시각적 상태로 사용됩니다. 단일 아이콘의 디자인 변경을 용이하게하고 응용 프로그램 전체에 전파하려면 이러한 항목을 저장하는 가장 좋은 방법은 무엇입니까?

나는 (오른쪽 클릭 -> 스타일 편집 ..) 스타일을 만들려고했으나 경로 데이터가없는 빈 스타일 만 만들 수 있습니다. 수동으로 사전에 경로를 포함하는 표에 대한 xaml 코드를 퍼팅도 도움이되지 않았다, 내가 무엇을 놓치고 있습니까?

경로 및 스타일 (색상, 획, 채우기 등) 정보를 쉽게 리소스 사전에 저장하면 쉽게 사용자 정의 컨트롤 및 다른 위치에서 쉽게 다시 사용할 수 있으므로 쉽게 업데이트 할 수 있습니다.

enter image description here

답변

7
<Style x:Key="MyIcon" TargetType="ContentControl"> 
     <Setter Property="ContentTemplate"> 
      <Setter.Value> 
       <DataTemplate> 
        <Path Stretch="Fill" Fill="Red" Data="F1 M 24,13C 27.1521,13 29.9945,14.3258 32,16.4501L 32,11L 35,14L 35,22L 27,22L 24,19L 29.5903,19C 28.217,17.4656 26.2212,16.5 24,16.5C 20.1969,16.5 17.055,19.3306 16.5661,23L 13.0448,23C 13.5501,17.3935 18.262,13 24,13 Z M 24,31.5C 27.8031,31.5 30.945,28.6694 31.4339,25L 34.9552,25C 34.4499,30.6065 29.738,35 24,35C 20.8479,35 18.0055,33.6742 16,31.5499L 16,37L 13,34L 13,26L 21,26L 24,29L 18.4097,29C 19.783,30.5344 21.7787,31.5 24,31.5 Z "/> 
       </DataTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

을 그리고 ContentControl을 유형 (또는 유도체)과 스타일을 사용 :

<ContentControl Style="{StaticResource MyIcon}" Width="20" Height="20" Grid.Row="0"/> 

모든 스타일이 될 수 있습니다 내가 다시 사용하려고 해요 아이콘의

예 일부 리소스 사전 내부 : 이것은 매우 유익한 기사입니다 : http://blogs.infosupport.com/tips-for-effective-usage-of-resource-dictionaries-in-silverlight-and-wpf/

+0

이 대답은 더 좋으며 나중에 사용자 상호 작용을 제공하기 위해 버튼을 사용하는 습관이 있습니다. ContentControl은 당신의 친구입니다. –

+0

Blend는 경로 데이터를 올바르게로드하려고하지 않는 것 같습니다. 불행히도 나는 더 나은 해결책이 없습니다. –