当前位置: 首页 > 编程日记 > 正文

slider(滑动条)控件模版,样式--用图片定义控件模版

初接触wpf,想自己用图片做一个个性slider滑块控件,网上找了很久无果。后来一些机缘巧合看别人源码的时候找到了类似的,然后自己再查了一下msdn,大概弄懂了。

我们先来看看slider控件组成元素。

Slider控件组成:

用图片自定义thumb(滑块)

<Style x:Key="SliderThumbStyle" TargetType="{x:Type Thumb}"><Setter Property="SnapsToDevicePixels" Value="True" /><Setter Property="OverridesDefaultStyle" Value="True" /><Setter Property="Height" Value="133" /><Setter Property="Width" Value="211" /><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type Thumb}"><Rectangle><Rectangle.Fill><ImageBrush ImageSource="Assets/thumb.png" Stretch="None"/></Rectangle.Fill></Rectangle></ControlTemplate></Setter.Value></Setter></Style>

RepeatButton自定义类似上述

需要知道RepeatButton分两部分,一部分滑块是划过的区域,一部分是滑块还没滑过的区域。

相关说明:

SnapsToDevicePixels可以将此特性添加到您的根元素的true启用呈现在 UI 中的像素对齐。对运行在大于 96每英寸点数 (dpi)的计算机,像素的呈现最大程度地减少抗锯齿可视化项目在一个度量单位的实线附近。

 

如果设置OverridesDefaultStyle到控件的true,则会禁止显示主题样式提供的默认控件模板。

 

Template获取或设置控件模板。

 

Rectangle绘制一个矩形形状,该形状可以具有笔画和填充。

Fill获取或设置指定形状内部绘制方式的Brush

 

Stretch获取或设置一个Stretch 枚举值,该值描述形状如何填充为它分配的空间(对于Ellipse Rectangle,默认Stretch行为是 Fill,因为它们的整个调整大小逻辑都基于Width Height。将Ellipse Rectangle Stretch设置为 None 可以有效地使其不呈现出来。)

 

System.Windows.Shapes提供对可在可扩展应用程序标记语言 (XAML)或代码中使用的基本形状库的访问。同时还包括 Path 类,该类可以加载路径数据,以便通过对象模型或内联格式描述复合几何图形。

 

TriggerWPF 样式和模板化模型允许在 Style 内部指定触发器。从本质上讲,触发器是可以让您在某些条件(例如某个属性值变为 true或者某个事件发生时)得到满足时应用更改的对象。

 

Track表示一个处理Thumb 控件的定位和大小调整的控件基元和两个用于设置Value RepeatButton 控件。

Orientation获取或设置Slider 的方向。Vertical垂直Horizontal水平

绘图相关:

Ellipse

绘制一个椭圆。

Line

在两个点之间绘制一条直线。

Path

绘制一系列相互连接的直线和曲线。 直线和曲线维度通过 Data 属性声明,并且可以使用 Path 特定的 mini-language 或使用对象模型来指定。

Polygon

绘制一个多边形,它是形成闭合形状的一系列相互连接的直接。

Polyline

绘制一系列相互连接的直线。

Rectangle

绘制一个矩形形状,该形状可以具有笔画和填充。

Shape

为 Ellipse、Polygon 和Rectangle 之类的形状元素提供基类。


转载于:https://www.cnblogs.com/fornet/archive/2013/02/21/2976171.html

相关文章:

360浏览器调用selenium

2019独角兽企业重金招聘Python工程师标准>>> 360浏览器调用selenium package com.demo;import java.io.File; import java.io.IOException;import org.junit.Before; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver;…

【组队学习】【28期】R语言数据科学

R语言数据科学 论坛版块&#xff1a; http://datawhale.club/c/team-learning/36-category/36 开源内容&#xff1a; https://github.com/datawhalechina/team-learning-program/tree/master/RLanguage 学习目标 向零基础的同学介绍如何利用R语言进行数据分析。通过学习&…

零基础参加Java培训班合适吗

零基础参加Java培训班合适吗?对于这个问题&#xff0c;首先答案是肯定的&#xff0c;零基础学习java技术最靠谱最快速的方法就是报java培训班进行学习了&#xff0c;来看看下面的详细介绍就知道了。 零基础参加Java培训班合适吗? 能够想到参加Java培训班学习的同学一般分为三…

用VS(c#)创建、调试windows service以及部署卸载

同事问到windows service的东东&#xff0c;现在整理一下&#xff0c;用c#如何创建一个windows service&#xff0c;以及如何调试、部署、卸载。 一、创建windows service 1. 打开VS2008&#xff0c;新建一个Project, Project类型选择Visual C#-Windows&#xff0c;在Templates…

【组队学习】【28期】基于Python的会员数据化运营

基于Python的会员数据化运营 论坛版块&#xff1a; http://datawhale.club/c/team-learning/37-category/37 开源内容&#xff1a; https://github.com/datawhalechina/team-learning-data-mining/tree/master/MemberOperations 学习目标 数据化运营是业务知识与编程技能…

异步系统接口调用流程图

2019独角兽企业重金招聘Python工程师标准>>> 异步系统接口调用流程图 博客分类&#xff1a; java ................................... 转载于:https://my.oschina.net/xiaominmin/blog/1597725

java培训教程分享:Java中用户如何自定义异常?

我们在学习java技术的时候应该有了解过&#xff0c;在java中是定义了很多的异常类的&#xff0c;虽然这些大量异常类可以帮助我们描述编程时出现的大部分异常情况&#xff0c;但是在程序开发中有时可能需要描述程序中特有的异常情况&#xff0c;例如在设计divide()方法时不允许…

【组队学习】【28期】基于transformers的自然语言处理(NLP)入门

基于transformers的自然语言处理(NLP)入门 论坛版块&#xff1a; http://datawhale.club/c/team-learning/39-category/39 开源内容&#xff1a; https://github.com/datawhalechina/Learn-NLP-with-Transformers 学习目标 自然语言处理&#xff08;Natural Language Pro…

java io在文件结尾持续添加内容

[代码] java io在文件结尾持续添加内容 public static void write(String path, String content) {try {File f new File(path);BufferedWriter output new BufferedWriter(new FileWriter(f,true));output http://www.szhaoexport.com/linked/20130222.do; .write(content &…

Docker1.12让容器使用和宿主机同一个网段

2019独角兽企业重金招聘Python工程师标准>>> Docker1.12让容器使用和宿主机同一个网段 博客分类&#xff1a; docker 由于开发的一些特殊需求&#xff0c;需要将容器部署在与宿主机同一个网段中&#xff0c;部署步骤如下&#xff1a;步骤一&#xff1a;创建网络$ …

java培训分享:java培训架构师学习线路图

本期java教程分享主要是讲解关于java培训架构师方面的内容&#xff0c;主要针对java架构师的学习线路图进行一个知识点的概括&#xff0c;下面来看看学习java架构师都需要了解哪些内容吧。 java培训分享&#xff1a;java培训架构师学习线路图 1、常见模式与工具 学习Java技术体…

设计中涉及到的dip、dp、px、sp等单位说明

在进行UI设计中常会遇到各种数值单位&#xff0c;开始使用时也常搞混&#xff0c;于是搜集了单位解说的文章与大家一同分享 dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关&#xff0c;一般我们为了支持WVGA、HVGA和QVGA 推荐使用…

【组队学习】【28期】Datawhale组队学习内容介绍

第28期 Datawhale 组队学习活动马上就要开始啦&#xff01; 本次组队学习的内容为&#xff1a; 吃瓜教程——西瓜书南瓜书李宏毅机器学习动手学数据分析集成学习SQL编程语言R语言数据科学基于Python的会员数据化运营数据采集从入门到精通基于transformers的自然语言处理(NLP)入…

多线程读一个全局变量要不要加锁?还是说只是当修改全局变量的时候才要加锁?...

如果所有线程都只读取该变量的话不必加锁&#xff0c;因为仅读取不存在破坏数据的风险&#xff0c;如果有线程写该变量的话不管读取还是写入都要加锁的。

java培训教程分享:Java编写软件代码自动提示功能

本期的java培训教程分享主要是介绍的java编写软件代码的一个自动提示功能&#xff0c;很多零基础和初学java的同学们对这一块还不是很了解&#xff0c;Eclipse for android 实现代码自动提示智能提示功能&#xff0c;以下是介绍 Eclipse for android。 java培训教程分享&#x…

iOS WebviewJavascriptBridge 源码研读笔记

这两天接近元旦&#xff0c;事情稍微少些&#xff0c;有些时间&#xff0c;索性写点什么&#xff0c;就从最擅长的iOS混合开发写起了&#xff0c;由于iOS开发经验不到四年吧&#xff0c;期间还搞了一年半的前端&#xff0c;有些知识可能还是积累的不足&#xff0c;能力不足&…

Debian上网的问题小结

装完系统或装系统中很重要的部分就是配置网络的问题了&#xff0c;记得刚安装Debian的时候还不知道dhclient eth0真是杯具。 关于怎么设置识别网卡su->输入root密码->nano /etc/network/interface然后分情况&#xff0c;如果你是有线的且只有一个网卡&#xff0c;就叫eth…

【组队学习】【28期】青少年编程(Scratch 一级)

青少年编程&#xff08;Scratch 一级&#xff09; 论坛版块&#xff1a; http://datawhale.club/c/team-learning/34-category/34 开源内容&#xff1a; https://github.com/datawhalechina/team-learning-program/tree/master/Scratch 学习目标 全国青少年软件编程等级考…

java培训教程分享:Java中怎样将数据对象序列化和反序列化?

本期为大家介绍的java培训教程是关于“Java中怎样将数据对象序列化和反序列化?”的内容&#xff0c;相信大家都知道&#xff0c;程序在运行过程中&#xff0c;可能需要将一些数据永久地保存到磁盘上&#xff0c;而数据在Java中都是保存在对象当中的。那么我们要怎样将对象中的…

C#实现的几种委托

//普通委托DeleteShow ds new DeleteShow(ShowName);Console.WriteLine("----------------------");Console.WriteLine("普通委托----请输入用户名:");string Name Console.ReadLine();Console.WriteLine(ds(Name));Console.WriteLine("-----------…

AFN框架使用整理

1.AFN框架基本使用 1 AFN内部结构 AFN结构体 NSURLConnection(iOS9.0废弃了) AFURLConnectionOperationAFHTTPRequestOperationAFHTTPRequestOperationManager(封装了常用的 HTTP 方法) 属性 baseURL :AFN建议开发者针对 AFHTTPRequestOperationManager 自定义个一个单例子类&a…

【青少年编程】【一级】小镇一日游

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

参加java培训后,就业方向有哪些

参加java培训后&#xff0c;就业方向有哪些?很多正在参加java培训的同学对这个问题都比较关注&#xff0c;那么下面小编就针对这个问题为大家做下详细的介绍&#xff0c;希望能够帮助到大家。 参加java培训后&#xff0c;就业方向有哪些?首先我们来了解一下Java的应用领域&am…

访问本地文件403

电脑不知道怎么设置的根目录下看不到所有文件夹 而且打开一个新的文件夹显示 Forbidden You dont have permission to access /atina/ on this server. 最后没办法只能手动把文件夹加上权限 chmod -R 777 atina //-R 递归修改&#xff0c;“/文件夹/“以下所有内容&#xff08…

iOS微信支付集成 SDK1 7 5

最近做了一个新项目&#xff0c;涉及到支付宝和微信支付&#xff0c;支付宝和微信都是业界的老大哥&#xff0c;相信大家都有所觉得文档、SDK都是各种坑吧&#xff08;纯粹吐槽而已&#xff09;&#xff0c;这是继上篇支付宝支付集成后接着的微信支付集成。 1.微信商户申请步骤…

【青少年编程(第26周)】一下子多了很多事!

2021年08月15日&#xff08;周日&#xff09;晚20:00我们在青少年编程竞赛交流群开展了第二十六次直播活动。我们直播活动的主要内容如下&#xff1a; 首先&#xff0c;我们奖励了上周测试超过60分的小朋友。 其次&#xff0c;介绍了Datawhale青少年组队学习活动的规划&#x…

Python培训教程分享:10款超好用的Python开发工具

学会Python技术后&#xff0c;我们在参加工作的时候如果能有辅助工具的话&#xff0c;那么会很大程度的提高我们的工作效率&#xff0c;那么Python都有哪些好用的开发工具呢?下面小编就为大家详细的介绍一下10款超好用的Python开发工具! Python培训教程分享&#xff1a;10款超…

pfSense book之2.4安装指南

pfSense商店的硬件产品都预装了pfSense软件。要重新安装pfSense软件或将其安装到其他硬件&#xff0c;请按照本章所述下载安装程序映像。警告预先从pfSense商店或授权合作伙伴以外的商业供应商预装pfSense软件的硬件不值得信任。 第三方可能已经对软件进行了未经授权的、未知的…

css中绝对定位中的left和top属性

<html><head><title>Absolute Position</title><style type "text/css">/*body具有红色边框&#xff0c;宽度300px&#xff0c;高度300px*/body {border: 1px solid red;width: 300px;height: 300px;}/*被绝对定位,颜色为silver*/div…

教育部办公厅关于2020-2021学年面向中小学生的全国性竞赛活动名单的公示

来源&#xff1a; http://www.moe.gov.cn/jyb_xxgk/s5743/s5745/202007/t20200701_469571.html 教育部办公厅关于2020-2021学年面向中小学生的全国性竞赛活动名单的公示 根据《教育部办公厅印发<关于面向中小学生的全国性竞赛活动管理办法&#xff08;试行&#xff09;&g…