2012-09-18 23 views

cevap

41

Bu bunu yapmak için çok hızlı bir yoldur. Bir stile dönüştürülebilir ve tasarımcının renkleri ve diğer özellikleri kolayca değiştirmesini sağlayan bir TemplatedControl yaratarak daha esnek hale getirilebilir. Circle olmak için

<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

Nice, thx olduğunu varsayabilirsiniz! Ancak, metin (İçerik) görüntülenemiyor. – linquize

+3

Bunun için ContentPresenter'ı cevabımdaki gibi kullanın. – ethicallogics

+0

@ethicallogics thx! sağ! – 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> 

Eğer yükseklik ve aynı düğme genişliğini ayarlamak gerekir.

İlgili konular