2011-01-12 5 views
4

XAML 형식의 벡터 그래픽 파일이 일부 있는데 Silverlight 응용 프로그램에서 아이콘/단추로 사용하고 싶습니다. 선호하는 방법은 Image 컨트롤을 사용하고 .xaml 파일에 소스 속성을 설정하는 것입니다. 보통의 비트 맵 이미지를 사용할 수있는 것과 같습니다.XAML 아이콘 - 사용 방법?

하지만 그렇게 쉽지는 않지만 ResourceTicket에 ControlTemplates로 포함 시키려고했는데 Xaml을 동적으로로드하는 사용자 지정 컨트롤을 만들려고했지만 실제로 필요한 결과가 없었습니다. 동적 크기 등을 허용하도록 ViewBox 컨트롤에 포장하십시오.

내 질문에 어떤 사람이 내 xaml 아이콘을 가장 잘 사용하는 방법에 대한 모범 사례 조언이 있습니까? 필자는 필요할 때 xaml을 복사하여 붙여 넣을 수 있었지만 실제로는 그 방법을 사용하지 않았습니다.

미리 감사드립니다. 당신은 버튼 's 및 ContentControl을 년대처럼 명확하게 당신의 XAML 아이콘의 예했지만 콘텐츠 제어를 게시해야

답변

4

JWendel는 내용ContentTemplate 모두가 속성. 공유 ContentTemplate 예는 다음과 같습니다 :

<UserControl 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" 
    xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit" 
> 
    <UserControl.Resources> 
     <Style x:Key="MyTriangleIcon" TargetType="ContentControl"> 
      <Setter Property="ContentTemplate"> 
       <Setter.Value> 
        <DataTemplate> 
         <Grid> 
          <Polygon Fill="Black" Stroke="Black"> 
           <Polygon.Points> 
            <Point X="0" Y="100"/> 
            <Point X="100" Y="0"/> 
            <Point X="100" Y="100"/> 
           </Polygon.Points> 
          </Polygon> 
          <Polygon Fill="Red" Stroke="Red"> 
           <Polygon.Points> 
            <Point X="100" Y="0"/> 
            <Point X="0" Y="100"/> 
            <Point X="0" Y="0"/> 
           </Polygon.Points> 
          </Polygon> 
         </Grid> 
        </DataTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </UserControl.Resources> 

    <StackPanel Background="White"> 
     <Button Width="120" Height="120" Style="{StaticResource MyTriangleIcon}" /> 
     <Button Width="120" Height="120" Style="{StaticResource MyTriangleIcon}" /> 
    </StackPanel> 

</UserControl> 

당신은 위의 내용을 붙여 넣을 수 있습니다 내 XamlViewer 신속하게 결과를 확인하기로.

행운을 빌어 요,
짐 맥 커디 당신의 relpy 짐에 대한

+0

감사합니다. 하지만 thats는 이미지를 사용하는 모든 컨트롤 또는 적어도 각 컨트롤 유형에 대해 하나의 스타일/템플릿을 만드는 모든 컨트롤에 대해 내 XAML을 복제해야한다는 "문제"를 해결하지 못합니다. 나는 .png 또는 .jpeg 파일로 작업하는 것과 비슷한 방식으로 .xaml 파일로 작업하게하는 방법을 찾고 싶다. 그다지 큰 문제는 아니지만 필자는 그 (것)들을 사용하는 복사 - 붙여 넣기 방법이 만족스럽지 않고, Content 속성과 함께 사용할 수 있다고 생각했습니다. – jmw

+0

중복을 피하려면 응용 프로그램 수준 (Application.Resources) 또는 UserControls 수준 (UserControl.Resources)에서 ContentControl 리소스 템플릿으로 XAML "아이콘"을 인스턴스화하기 만하면됩니다. 위의 XAML을 수정하여이를 수행하는 방법과 XAML을 다시 사용할 수있는 방법을 보여줍니다. –

+0

그건 좋은 방법, 감사합니다! – jmw