2010-04-07 7 views
3

버튼 용 컨트롤 템플릿이 있습니다. 둥근 모서리가있는 단추를 만들고 싶습니다. 어떻게해야합니까?버튼 컨트롤 템플릿 및 둥근 모서리

테두리의 단추로 CornerRadius를 시도했지만 작동하지 않습니다. 단추의 배경은 모서리 테두리가있는 이미지로 설정되어 있으며 단추의 모퉁이를 설정할 수 없으므로 단추가 제대로 보입니다.

+0

후 당신은 ControlTemplate 마크 업. – Charlie

+0

내 ControlTemplate 위에 게시 됨, CornerRadius 효과가 없습니다. – codematrix

답변

9

는 다음과 같은 시도 :

<Style x:Key="GlassButton" TargetType="{x:Type Button}"> 
    <Setter Property="FontSize" Value="42" /> 
    <Setter Property="Foreground" Value="White" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type Button}"> 
       <Border x:Name="border" 
         CornerRadius="25" 
         BorderThickness="4" 
         Background="#AA000000" 
         BorderBrush="Red" 
         RenderTransformOrigin="0.5,0.5"> 
        <ContentPresenter x:Name="ButtonContentPresenter" 
             VerticalAlignment="Center" 
             HorizontalAlignment="Center" /> 
       </Border> 

       <ControlTemplate.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter TargetName="border" Property="BorderBrush" Value="#FF4788c8" /> 
         <Setter Property="Foreground" Value="#FF4788c8" /> 
        </Trigger> 
        <Trigger Property="IsPressed" Value="True"> 
         <Setter Property="Background"> 
          <Setter.Value> 
           <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> 
            <GradientStop Color="#FFFFD190" Offset="0.35" /> 
            <GradientStop Color="Orange" Offset="0.95" /> 
            <GradientStop Color="#FFFFD190" Offset="1" /> 
           </LinearGradientBrush> 
          </Setter.Value> 
         </Setter> 
         <Setter TargetName="content" Property="RenderTransform"> 
          <Setter.Value> 
           <TranslateTransform Y="1.0" /> 
          </Setter.Value> 
         </Setter> 
        </Trigger> 
        <Trigger Property="IsDefaulted" Value="True"> 
         <Setter TargetName="border" Property="BorderBrush" Value="#FF282828" /> 
        </Trigger> 
        <Trigger Property="IsFocused" Value="True"> 
         <Setter TargetName="border" Property="BorderBrush" Value="#FF282828" /> 
        </Trigger> 
        <Trigger Property="IsEnabled" Value="False"> 
         <Setter TargetName="border" Property="Opacity" Value="0.7" /> 
         <Setter Property="Foreground" Value="Gray" /> 
        </Trigger> 

       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
+1

OMG, 그 코드는 둥근 모서리입니까? – VivekDev

+0

Gosh, ios storyboard - 그저 동적 인 속성. "layer.cornerRadius". 이것을보고 나면, Windows 응용 프로그램에서 둥근 모서리를 만드는 것을 포기합니다. : D – Itzdsp

+0

@Dhana 그것은 단지 하나의 재산이기도합니다. 그러나 Button은 Border-Object와 Content Presenter로 구성되어 있으므로 테두리 요소의 Corner Radius 만 변경하면되므로 Button Template를 편집해야합니다. –