zoukankan      html  css  js  c++  java
  • 继续聊WPF——Slider控件

     
    Slider控件,讲行通俗一点就是我们很常见的滑块,控件的外观上显示一系例刻度值,并存在一个可以被拖动的滑块,用户可以通过拖动滑块来控制控件的值。
    如下图所示,是Windows系统的音量调节滑块。
     
     

    下图所示为QQ音频聊天设置窗口中的音量调节滑块。

     

    这样,我们就以很直观的方式认识了Slider控件。

    接下来看看该控件的构成:

     

    然后,查看Slider类的定义,从中找出主体部分。

     

    其中,我们看到有一个部件很重要,那就是命名为PART_Track的部件,它是一个Track控件,在前面自定义滚动条的时候我们用到它,它由两个RepeatButton和一个Thumb组成,RepeatButton与普通的Button没太大区别,只不过它可以记录单击次数和设置响应延迟时间罢了,这里完全只把它当作按钮来用。

    整个Track控件就是通过改变Thumb的位置和两RepeatButton的大小来动态显示该控件的外观的。

    为了显示刻度线,一个TickBar控件是必须,这个控件很简单,它没有模板也不需要设置样式,只需用好几个属性就行了。

    Maximum——最大值,与进度条类似;

    Minimum——对应的,表示最小值;

    Ticks——设置刻度线的位置,可以设置多个值,如果刻度需要不均匀显示的情况下可以使用该属性;

    TickFrequency——刻度间隔,就是刻度线之间的间距,如果最小值是0,最大值是100,TickFrequency设置为5,那么,该刻度条将均匀地显示20处刻度线。

    注意:TickFrequency与Ticks不能同时使用,因为它们一个是均匀分布,一个是不均匀分布,同时设置会发生冲突。

    Placement——Tick在Slider控件中的位置,如果Slider是水平的,那么就是上或下,如果Slider控件是垂直的,那么就是左或右。

    下面看一个Tick控件的例子,这只是演示,Tick单独使用没有意义。

     


    好了,现在我们可以自定义一个Slider,这个例子是水平的,它用一个Grid来布局,共三行,最上和最下行分别放一个TickBar用于显示刻度,中间放一个Track为主体部分。

    为了能动态显示刻度值,我们把Slider的Value属性绑定到TextBlock的Text属性,这样,只要Slider控件的值发生改变,TextBlock中就能动态显示,前面我们说过了,WPF的属性系统都是依赖项属性,因此可以动态关联。


     

  • 相关阅读:
    [linux]Linux下的log
    [WDT]内部看门狗和外部看门狗
    [misc]printf/fprintf/sprintf/snprintf函数
    [Linux]read/write和fread/fwrite有什么区别
    移动端图片操作(二)——预览、旋转、合成
    移动端图片操作(一)——上传
    实现tap的多种方式
    Hammer.js分析(四)——recognizer.js
    Hammer.js分析(三)——input.js
    Hammer.js分析(二)——manager.js
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/2457969.html
Copyright © 2011-2022 走看看