2012-08-15 4 views
0

다음 XAML 코드를 단추 배경에 통합하는 방법은 무엇입니까? 나는 여러 가지 방법을 시도해 왔지만 제대로 작동 시키려면 고심하고있다. 추신 : 저는 XAML을 처음 접했습니다.XAML에서 단추 배경 변경?

<Viewbox Width="55.247" Height="55.247" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
<Canvas Width="55.247" Height="55.247"> 

    <Canvas> 

    <!-- button/circle --> 
    <Path StrokeThickness="1.0" Stroke="#ff335284" StrokeMiterLimit="1.0" Data="F1 M 54.747,27.624 C 54.747,42.603 42.603,54.747 27.624,54.747 C 12.644,54.747 0.500,42.603 0.500,27.624 C 0.500,12.644 12.644,0.500 27.624,0.500 C 42.603,0.500 54.747,12.644 54.747,27.624 Z"> 
    <Path.Fill> 
     <RadialGradientBrush MappingMode="Absolute" GradientOrigin="392.717,-251.469" Center="392.717,-251.469" RadiusX="27.123" RadiusY="27.123"> 
     <RadialGradientBrush.GradientStops> 
      <GradientStop Offset="0.00" Color="#ff00aae4"/> 
      <GradientStop Offset="1.00" Color="#ff2463a7"/> 
     </RadialGradientBrush.GradientStops> 
     <RadialGradientBrush.Transform> 
      <MatrixTransform Matrix="1.000,0.000,-0.000,-1.000,-365.093,-223.845" /> 
     </RadialGradientBrush.Transform> 
     </RadialGradientBrush> 
    </Path.Fill> 
    </Path> 

    </Canvas> 
</Canvas> 
</Viewbox> 

답변

3

다음 예제에서는 표준 Button Template를 디자인으로 바꾸고 콘텐트 발표자를 추가하므로 단추의 콘텐트를 설정할 수 있습니다.

<Button Content="OK" Width="75" Height="75"> 
    <Button.Template> 
     <ControlTemplate TargetType="Button"> 

      <Grid> 
       <Path StrokeThickness="1.0" Stroke="#ff335284" StrokeMiterLimit="1.0" Data="F1 M 54.747,27.624 C 54.747,42.603 42.603,54.747 27.624,54.747 C 12.644,54.747 0.500,42.603 0.500,27.624 C 0.500,12.644 12.644,0.500 27.624,0.500 C 42.603,0.500 54.747,12.644 54.747,27.624 Z"> 
        <Path.Fill> 
         <RadialGradientBrush MappingMode="Absolute" GradientOrigin="392.717,-251.469" Center="392.717,-251.469" RadiusX="27.123" RadiusY="27.123"> 
          <RadialGradientBrush.GradientStops> 
           <GradientStop Offset="0.00" Color="#ff00aae4"/> 
           <GradientStop Offset="1.00" Color="#ff2463a7"/> 
          </RadialGradientBrush.GradientStops> 
          <RadialGradientBrush.Transform> 
           <MatrixTransform Matrix="1.000,0.000,-0.000,-1.000,-365.093,-223.845" /> 
          </RadialGradientBrush.Transform> 
         </RadialGradientBrush> 
       </Path.Fill> 
      </Path> 
      <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 
     </Grid> 

    </ControlTemplate> 
</Button.Template> 

+0

도현, 나는 그가 WPF 또는 SL을 지정하면 그렇게 할 거라고. +1 타이밍. :) –

+0

@ChrisW. WPF와 실버 라이트는 동일합니다. 그러므로 대답 할 수는 없습니다.) –

+0

WPF 당 SL 또는 트리거가 전체 템플릿으로 사용되지만 템플릿의 잠재적 인 상태/전환에 대해 자세히 알고 싶지 않다면 문제의 해결 방법은 오래되었습니다. 도달, 여전히 나에게서 +1. 건배 –

1

그럼 여러 가지 옵션이 있습니다. 말 그대로 문자 그대로 버튼에 경로를 넣으려고한다면 최소한의 노력으로 할 수 있습니다.

<Button Width="75" Height="75"> 
    <!-- Embed our elements in a grid since Content can be set only once --> 
    <Grid> 
     <!-- Your Path --> 
     <Path StrokeThickness="1.0" Stroke="#ff335284" StrokeMiterLimit="1.0" Data="F1 M 54.747,27.624 C 54.747,42.603 42.603,54.747 27.624,54.747 C 12.644,54.747 0.500,42.603 0.500,27.624 C 0.500,12.644 12.644,0.500 27.624,0.500 C 42.603,0.500 54.747,12.644 54.747,27.624 Z"> 
      <Path.Fill> 
      <RadialGradientBrush MappingMode="Absolute" GradientOrigin="392.717,-251.469" Center="392.717,-251.469" RadiusX="27.123" RadiusY="27.123"> 
       <RadialGradientBrush.GradientStops> 
       <GradientStop Offset="0.00" Color="#ff00aae4"/> 
       <GradientStop Offset="1.00" Color="#ff2463a7"/> 
       </RadialGradientBrush.GradientStops> 
       <RadialGradientBrush.Transform> 
       <MatrixTransform Matrix="1.000,0.000,-0.000,-1.000,-365.093,-223.845" /> 
       </RadialGradientBrush.Transform> 
      </RadialGradientBrush> 
      </Path.Fill> 
     </Path> 
     <!-- Your Button Text --> 
     <TextBlock Text="Button" HorizontalAlignment="Center" VerticalAlignment="Center"/> 
    </Grid> 
</Button> 

더 많은 기술/청소기가 필요할 경우 제어 템플릿에 바로 넣을 수 있습니다. WPF Button Control Template

호프가 도움이 되었기를 바랍니다. 다행히도 WPF 버튼을 사용자 정의하기위한 웹 튜토리얼이 많이 있습니다. WPF 또는 SL (VisualStateManager 또는 스타일 트리거와 같은 차이점)에 대해 촬영 중인지 여부와 같이 여러분이 원하는 것을 구체적으로 설명하고 싶다면 사람들이 더 유용 할 것입니다. :)