2012-09-18 2 views

답변

41

이 그것을 할 수있는 매우 빠른 방법입니다. 스타일로 변경 될 수 있으며 디자이너가 색상 및 기타 속성을 쉽게 변경할 수 있도록 TemplatedControl을 만들어보다 유연하게 만들 수 있습니다. 이 원이 될 수 있도록

<Button Width="100" 
     Height="100"> 
    <Button.Template> 
     <ControlTemplate TargetType="Button"> 
      <Grid> 
       <Ellipse Stroke="Black" 
         StrokeThickness="2"> 
        <Ellipse.Fill> 
         <RadialGradientBrush> 
          <GradientStop Offset="0" 
              Color="Lime" /> 
          <GradientStop Offset="1" 
              Color="Lime" /> 
          <GradientStop Offset="1" 
              Color="Gold" /> 
          <RadialGradientBrush.Transform> 
           <TransformGroup> 
            <ScaleTransform ScaleY="0.65" /> 
           </TransformGroup> 
          </RadialGradientBrush.Transform> 
         </RadialGradientBrush> 
        </Ellipse.Fill> 
       </Ellipse> 
       <ContentPresenter HorizontalAlignment="Center" 
            VerticalAlignment="Center"/> 
      </Grid> 
     </ControlTemplate> 
    </Button.Template> 
</Button> 
+1

니스, thx! 그러나 텍스트 (내용)는 표시 할 수 없습니다. – linquize

+3

내 회신에서 아래와 같이 ContentPresenter를 사용하십시오. – ethicallogics

+0

@ethicallogics thx! 권리! – linquize

17
<Button Width="100" Height="100" Content="Abcd"> 
     <Button.Template> 
      <ControlTemplate TargetType="{x:Type Button}"> 
       <Grid> 
       <Ellipse Fill="Red"/> 
        <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/> 
       </Grid> 
      </ControlTemplate> 
     </Button.Template> 
    </Button> 

당신은 높이와 같은 버튼의 폭을 설정해야합니다.

관련 문제