WPF实现自定义CheckListBox_第1页
WPF实现自定义CheckListBox_第2页
WPF实现自定义CheckListBox_第3页
WPF实现自定义CheckListBox_第4页
WPF实现自定义CheckListBox_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、传统的CheckListBox 就是下面这玩意啦:(2.94 K)2008-7-24 2:53:56我也不知道为什么,WPF里没有提供 CheckListBox 控件,但凭借WPF强大的外观定制能力,我们可以轻松的创制一个自己的 CheckListBox 。CheckListBox 的基本功能其实和 ListBox 没有太大出入,只要将普通的ListBox 的选择模式设为多选,它就能基本实现 CheckListBox 的功用了,只不过从用户角度来说,它的使用方式不如 CheckListBox 看起来那么明确而已。我们接下来就仅仅采用外观修改的方法,将 ListBox 与 CheckBox 拼插

2、,打造出无敌山寨版 CheckListBox 。首先在窗体设计器中建立一个ListBox,并为之填入一些内容项:(19.20 K)2008-7-24 2:53:56然后我们把第四讲时的列表样式代码COPY到App.xaml里去:1.         <!-ListBox样式->2.         <Style TargetType="ListBox">3.             <Setter Prop

3、erty="BorderBrush" Value="#BDD4F1"/>4.             <Setter Property="BorderThickness" Value="1"/>5.             <Setter Property="Background" Value="#F8F7F5"/>6. 

4、60;           <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Hidden"/>7.             <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>8.   &#

5、160;         <Setter Property="ScrollViewer.CanContentScroll" Value="true"/>9.             <Setter Property="VerticalContentAlignment" Value="Center"/>10.         </Style>1

6、1.         <!-ListBoxItem样式->12.         <Style TargetType="ListBoxItem">13.             <Setter Property="Foreground" Value="#B5BABF"/>14.            

7、<Setter Property="OverridesDefaultStyle" Value="True"/>15.             <Setter Property="Height" Value="24"/>16.             <Setter Property="Template">17.     &

8、#160;           <Setter.Value>18.                     <ControlTemplate TargetType="ListBoxItem">19.                         <Border Name=&qu

9、ot;back" BorderBrush="#F8F7F5" BorderThickness="0,1,0,1">20.                             <Border.Background>21.                        

10、        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">22.                                     <GradientBrush.GradientStops>23.       

11、60;                                 <GradientStopCollection>24.                                           

12、60; <GradientStop Color="#F8F7F5" Offset="0.0"/>25.                                             <GradientStop Color="#F8F7F5" Offset="0.5"/&g

13、t;26.                                             <GradientStop Color="#F8F7F5" Offset="0.51"/>27.                   &#

14、160;                         <GradientStop Color="#F8F7F5" Offset="1"/>28.                                        

15、 </GradientStopCollection>29.                                     </GradientBrush.GradientStops>30.                            

16、    </LinearGradientBrush>31.                             </Border.Background>32.                             <ContentPresenter Margin=

17、"2" VerticalAlignment="Center"/>33.                         </Border>34.                         <ControlTemplate.Triggers>35.     

18、0;                       <Trigger Property="IsSelected" Value="True">36.                                 <Trigger.EnterActions>37. &#

19、160;                                   <BeginStoryboard>38.                                         <Story

20、board>39.                                             <DoubleAnimation To="32" Duration="0:0:0.3" Storyboard.TargetProperty="Height"/>40.    

21、                                         <ColorAnimation To="#F3C37C" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BorderBru

22、sh).(SolidColorBrush.Color)" />41.                                             <ColorAnimation To="#952B00" Duration="0:0:0.2" Storyboard.TargetProperty="

23、(ListBoxItem.Foreground).(SolidColorBrush.Color)" />42.                                             <ColorAnimation To="#FFF" Duration="0:0:0.2" Storyboard.Tar

24、getName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)0.(GradientStop.Color)" />43.                                           

25、60; <ColorAnimation To="#FFEF99" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)1.(GradientStop.Color)" />44.                  

26、;                           <ColorAnimation To="#FFE13F" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)2.(Gradien

27、tStop.Color)" />45.                                             <ColorAnimation To="#FFF3B0" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboa

28、rd.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)3.(GradientStop.Color)" />46.                                         </Storyboard>47.      

29、                               </BeginStoryboard>48.                                 </Trigger.EnterActions>49.      

30、                          <Trigger.ExitActions>50.                                     <BeginStoryboard>51.       

31、0;                                 <Storyboard>52.                                             <Doubl

32、eAnimation BeginTime="0:0:0.4" Duration="0:0:0.2" Storyboard.TargetProperty="Height"/>53.                                             <ColorAnimation Dura

33、tion="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" />54.                                         

34、0;   <ColorAnimation Duration="0:0:0.2" Storyboard.TargetProperty="(ListBoxItem.Foreground).(SolidColorBrush.Color)" />55.                                          

35、   <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)0.(GradientStop.Color)" />56.                       

36、60;                     <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)1.(GradientStop.Color)" />57.    

37、                                        <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.

38、GradientStops)2.(GradientStop.Color)" />58.                                             <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storybo

39、ard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)3.(GradientStop.Color)" />59.                                         </Storyboard>60.      

40、;                               </BeginStoryboard>61.                                 </Trigger.ExitActions>62.      

41、                      </Trigger>63.                             <Trigger Property="IsMouseOver" Value="True">64.         &#

42、160;                       <Trigger.EnterActions>65.                                     <BeginStoryboard>66.          

43、;                               <Storyboard>67.                                             <ColorAnimatio

44、n To="#D8E6F5" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" />68.                                 

45、60;           <ColorAnimation To="#617A98" Duration="0:0:0.2" Storyboard.TargetProperty="(ListBoxItem.Foreground).(SolidColorBrush.Color)" />69.                           

46、60;                 <ColorAnimation To="#F6F9FD" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)0.(GradientStop.Color)" />70.  

47、;                                           <ColorAnimation To="#E0EBF7" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.B

48、ackground).(LinearGradientBrush.GradientStops)1.(GradientStop.Color)" />71.                                             <ColorAnimation To="#D7E5F6" Duration="0:0:0

49、.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)2.(GradientStop.Color)" />72.                                     &

50、#160;       <ColorAnimation To="#F6F9FD" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)3.(GradientStop.Color)" />73.           

51、60;                             </Storyboard>74.                                     </BeginStoryboard>75.      

52、                          </Trigger.EnterActions>76.                                 <Trigger.ExitActions>77.          

53、;                           <BeginStoryboard>78.                                         <Storyboard>79.     

54、0;                                       <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)&

55、quot; />80.                                             <ColorAnimation Duration="0:0:0.2" Storyboard.TargetProperty="(ListBoxItem.Foreground).(SolidColorBrush.Color)&qu

56、ot; />81.                                             <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Backgr

57、ound).(LinearGradientBrush.GradientStops)0.(GradientStop.Color)" />82.                                             <ColorAnimation Duration="0:0:0.2" Storyboard.TargetNa

58、me="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)1.(GradientStop.Color)" />83.                                             &

59、lt;ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)2.(GradientStop.Color)" />84.                                             <ColorAnimation Duration="0:0:0.2" Storyb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论