微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

利用Path路径设计的按钮图标(Silverlight)

 

实现简单的按钮图标,鼠标移上时显示框,本样式只专注于图案,文字要另外调整ContentPresenter的位置

<Style x:Key="refresh_Btn" targettype="Button">
  <Setter Property="Padding" Value="3"/>
  <Setter Property="BorderThickness" Value="1"/>
  <Setter Property="BorderBrush" Value="#005FADDD" />
  <Setter Property="Background" Value="Transparent" />
  <Setter Property="Template">
      <Setter.Value>
    <ControlTemplate targettype="Button">
        <Grid>
      <visualstatemanager.VisualStateGroups>
          <VisualStateGroup x:Name="CommonStates">
        <VisualState x:Name="normal"/>
        <VisualState x:Name="MouSEOver">
            <Storyboard>
          <ColorAnimation Duration="0:0:0.5" To="#FF5FADDD" 
	      Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" 
	      Storyboard.TargetName="Background" />          
            </Storyboard>
        </VisualState>
        <VisualState x:Name="pressed" />
        <VisualState x:Name="disabled">
            <Storyboard>
               <DoubleAnimation Duration="0" To=".55" Storyboard.TargetProperty="Opacity" 
                  Storyboard.TargetName="disabledVisualElement"/>
            </Storyboard>
        </VisualState>
          </VisualStateGroup>
          <VisualStateGroup x:Name="Focusstates">
        <VisualState x:Name="Focused">
            <Storyboard>
               <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" 
                  Storyboard.TargetName="FocusVisualElement"/>
            </Storyboard>
        </VisualState>
        <VisualState x:Name="Unfocused"/>
          </VisualStateGroup>
      </visualstatemanager.VisualStateGroups>
      <Border x:Name="Background" BorderBrush="{TemplateBinding BorderBrush}" 
         BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" CornerRadius="0">
          <Grid Background="{TemplateBinding Background}" Margin="1">
             <Path x:Name="PathIcon" Data="...(省略)" Fill="#036EB8" HorizontalAlignment="Center" VerticalAlignment="Center">

             </Path>
          </Grid>
      </Border>
      <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" 
          Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
          Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
      <Rectangle x:Name="disabledVisualElement" Fill="#FFFFFFFF" IsHitTestVisible="false" Opacity="0" RadiusY="3" RadiusX="3"/>
      <Rectangle x:Name="FocusVisualElement" IsHitTestVisible="false" Margin="1" Opacity="0" RadiusY="2" RadiusX="2" 
          stroke="{x:Null}" strokeThickness="0"/>
        </Grid>
    </ControlTemplate>
      </Setter.Value>
  </Setter>
</Style>


 记录此方法,为日后项目中使用

---- 记录完毕 -----

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐