ListBox 单击变大动画效果(使用模板、样式、绑定数据源等)

一、ListBox系列索引

1、WPF ListBox基础(包括ListBox多列展示,ListBox实现分页效果,ListBox绑定XML数据源

2、ListBox 单击变大动画效果(使用模板、样式、绑定数据源等)

 

二、ListBox 单击变大动画效果(使用模板、样式、绑定数据源等)

 

<Grid>
     <ListBox x:Name= "_listBox"
    ItemsSource= "{StaticResource DataSource}"
             ItemContainerStyle= "{StaticResource ListBoxItemStyle}"
    ItemTemplate= "{StaticResource MyItemTemplate}"
    ItemsPanel= "{StaticResource MyPanelTemplate}"
    HorizontalAlignment= "Center"
    Width= "250"
   BorderThickness= "0"  />
</Grid>

//资源一

<UserControl.Resources>
       <x:Array x:Key= "DataSource"  Type= "System:String" >
           <System:String>ONE</System:String>
           <System:String>TWO</System:String>
           <System:String>THREE</System:String>
           <System:String>FOUE</System:String>
           <System:String>FIFE</System:String>
           <System:String>SIX</System:String>
           <System:String>SEVEN</System:String>
           <System:String>EIGHT</System:String>
           <System:String>NINE</System:String>
           <System:String>TEN</System:String>
       </x:Array>
       <LinearGradientBrush x:Key= "NormalBrush"
            StartPoint= "0,0"
            EndPoint= "0,1" >
           <GradientStop Offset= "0"
         Color= "#feffe8"  />
           <GradientStop Offset= "1"
         Color= "#d6dbbf"  />
       </LinearGradientBrush>
 
       <LinearGradientBrush x:Key= "SelectedBrush"
        StartPoint= "0,0"
        EndPoint= "0,1" >
           <GradientStop Offset= "0"
                 Color= "#7fcfe1ed"  />
           <GradientStop Offset= "1"
        Color= "#7f7faaca"  />
       </LinearGradientBrush>
       <DataTemplate x:Key= "MyItemTemplate" >
           <TextBlock Text= "{Binding}"  FontSize= "18" />
       </DataTemplate>
</UserControl.Resources>

 

//资源二

<UserControl.Resources>                
     <Style x:Key= "ListBoxItemStyle"
  TargetType= "ListBoxItem" >
         <Setter Property= "FocusVisualStyle"  Value= "{x:Null}" />
         <Setter Property= "Margin"  Value= "5,5,5,0" />
         <Setter Property= "RenderTransformOrigin"  Value= "0,0.5"  />
         <Setter Property= "RenderTransform" >
             <Setter.Value>
                 <ScaleTransform ScaleX= "1"    ScaleY= "1"  />
             </Setter.Value>
         </Setter>
         <Setter Property= "Template" >
             <Setter.Value>
                 <ControlTemplate TargetType= "ListBoxItem" >
                     <Border x:Name= "Root"
        BorderBrush= "#bdc1a3"
        BorderThickness= "1"
        CornerRadius= "5"
        Background= "{StaticResource NormalBrush}" >
                         <ContentPresenter Content= "{TemplateBinding Content}"   ContentTemplate= "{TemplateBinding ContentTemplate}"                  
                  HorizontalAlignment= "Center"  VerticalAlignment= "Center"  />  
                     </Border>
                     <ControlTemplate.Triggers>
                         <!-- Hover state -->
                         <Trigger Property= "IsMouseOver"   Value= "True" >
                             <Setter Property= "BorderBrush"    Value= "#2a849d"
                   TargetName= "Root"  />
                         </Trigger>
 
                         <!-- Selected state -->
                         <Trigger Property= "IsSelected"   Value= "True" >
                             <Setter Property= "Panel.ZIndex"  Value= "1"  />
                             <Setter Property= "BorderBrush"  Value= "#2a849d"  TargetName= "Root"  />
                             <Setter Property= "Background"     Value= "{StaticResource SelectedBrush}"  TargetName= "Root"  />
                             <Trigger.EnterActions
                                 <BeginStoryboard>
                                     <Storyboard>
                                         <DoubleAnimation To= "1.05"   Duration= "0:0:0.25"
              Storyboard.TargetProperty= "RenderTransform.(ScaleTransform.ScaleX)"  />
                                         <DoubleAnimation To= "1.5"  Duration= "0:0:0.25"
              Storyboard.TargetProperty= "RenderTransform.(ScaleTransform.ScaleY)"  />
                                     </Storyboard>
                                 </BeginStoryboard>
                             </Trigger.EnterActions>
                             <Trigger.ExitActions>
                                 <BeginStoryboard>
                                     <Storyboard>
                                         <DoubleAnimation To= "1"
              Duration= "0:0:0.25"
              Storyboard.TargetProperty= "RenderTransform.(ScaleTransform.ScaleX)"  />
                                   <DoubleAnimation To= "1"  Duration= "0:0:0.25"   Storyboard.TargetProperty= "RenderTransform.(ScaleTransform.ScaleY)"  />
                                     </Storyboard>
                                 </BeginStoryboard>
                             </Trigger.ExitActions>
                         </Trigger>
                     </ControlTemplate.Triggers>
                 </ControlTemplate>
             </Setter.Value>
         </Setter>
     </Style>
     <ItemsPanelTemplate x:Key= "MyPanelTemplate" >
         <WrapPanel ItemWidth= "200"
                    ItemHeight= "50"
                    Orientation= "Vertical"
                    IsItemsHost= "True"
                    Margin= "0,10,0,0" />
     </ItemsPanelTemplate>
</UserControl.Resources>

 

 

2)效果图: 

 


本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2011/09/06/2169241.html,如需转载请自行联系原作者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值