WPF效果第一百九十篇之再耍ListBox

前面一篇效果基于Expander和ListBox实现了一下所需要的效果;今天再次实现点底部不一样的效果;最终实现的效果:

1、ItemContainerStyle我是比较简单粗暴直接分了二行:ListBox+Canvas实现:

<ControlTemplate TargetType="{x:Type ListBoxItem}"><Grid Background="#18191B" Margin="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"><Grid.RowDefinitions><RowDefinition/><RowDefinition Height="80"/></Grid.RowDefinitions><ListBox Style="{StaticResource SignalCardListBox}" Name="SignalCardListBox" ItemsSource="{Binding SignalDistributionCards}"/><Canvas Grid.Row="1" Width="{Binding ElementName=SignalCardListBox,Path=ActualWidth}"><Border Canvas.Left="{Binding LeftCardCount,Converter={StaticResource LeftCardCountToVideoCardLeft}}" Canvas.Top="30" BorderBrush="Green" HorizontalAlignment="Center" VerticalAlignment="Bottom" BorderThickness="2" Padding="0" Width="150" Height="40"><CheckBox Margin="4,0,0,0" Content="视频接入卡"Style="{StaticResource CheckCheckBoxStyle}"IsChecked="{Binding IsChecked}"/></Border><Path Data="M13.170958,0L14.585027,1.4149784 3.8476841,12.144024 32.000095,12.144024 32.000095,14.145017 3.8188674,14.145017 14.607,24.922982 13.191954,26.338998 0,13.159001z"Stretch="Fill"  Fill="White" Height="26" Width="50" RenderTransformOrigin="0.5,0.5"Canvas.Left="{Binding LeftCardCount,Converter={StaticResource LeftCardCountToVideoCardLeftArrowValue}}"><Path.RenderTransform><RotateTransform Angle="45"/></Path.RenderTransform></Path><Path Data="M13.170958,0L14.585027,1.4149784 3.8476841,12.144024 32.000095,12.144024 32.000095,14.145017 3.8188674,14.145017 14.607,24.922982 13.191954,26.338998 0,13.159001z"Stretch="Fill"  Fill="White" Height="26" Width="49" RenderTransformOrigin="0.5,0.5"Canvas.Left="{Binding LeftCardCount,Converter={StaticResource LeftCardCountToVideoCardRightArrowValue}}"><Path.RenderTransform><RotateTransform Angle="135"/></Path.RenderTransform></Path></Canvas></Grid>
</ControlTemplate>

2、左侧箭头Canvas.Left的转换器:

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{double leftValue = 0.0;if(value != null){//左侧带载的信号分配卡的数量int count = System.Convert.ToInt32(value);if(count != 0){//单个信号分配卡的宽度是200,所以有几个就要乘以几个,在减去左侧箭头的宽度(50)leftValue = count * 200 - 50;}}return leftValue;
}

3、右侧箭头Canvas.Left的转换器:

public object Convert(object value, Type targetType, object parameter, CultureInfo culture){double leftValue = 0.0;if(value != null){//左侧带载的信号分配卡的数量int count = System.Convert.ToInt32(value);if(count != 0){//单个信号分配卡的宽度是200,所以有几个就要乘以几个leftValue = count * 200;}}return leftValue;}

最终简单的效果先这样吧c2444f6e47379bb5620dd6b704e4fe25.png;以后有时间的话,可以再去摸索一下更复杂的效果86ce9996e510e2a9c2d4827d7edad792.png;编程不息、Bug不止、无Bug、无生活27cd2be15557512273fb145465e199d6.png;改bug的冷静、编码的激情、完成后的喜悦、挖坑的激动 、填坑的兴奋;这也许就是屌丝程序员的乐趣吧;今天就到这里吧;希望自己有动力一步一步坚持下去;生命不息,代码不止;大家抽空可以看看今天分享的效果,有好的意见和想法,可以在留言板随意留言;我看到后会第一时间回复大家,多谢大家的一直默默的关注和支持!如果觉得不错,那就伸出您的小手点个赞并关注一下!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/285864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rabbitmq~对Vhost的配置

rabbitmq里有一些概念我们要清楚&#xff0c;如vhost,channel,exchange,queue等&#xff0c;而前段时间在部署rabbitmq环境时启用了虚拟主机vhost&#xff0c;感觉他主要是起到了消息隔离的作用,下面分别再说一下它们的知识。 VHost vhost去做第一层的区分&#xff0c;虚拟主机…

表单元素 开篇

今天开始讲述表单这个重要模块 可以说,JS 最早是为表单而发明的, 因此在没有JS之前,所有操作都需要提交后端验证,发现有误再重定向回原页面, 加上之前1,2KB的网速,这用户体验真是奇差无比.因此JS最初发明出来&#xff0c;就是做表单验证的&#xff0e; 围绕表单&#xff0c;添加…

如何画出一张合格的技术架构图?

阿里妹导读&#xff1a;技术传播的价值&#xff0c;不仅仅体现在通过商业化产品和开源项目来缩短我们构建应用的路径&#xff0c;加速业务的上线速率&#xff0c;也体现在优秀工程师在工作效率提升、产品性能优化和用户体验改善等经验方面的分享&#xff0c;以提高我们的专业能…

.NET 发布和支持计划介绍

.NET 发布和支持计划介绍Intro对于 .NET 的发布&#xff0c;大多数童鞋都知道现在每年发布一个版本&#xff0c;针对 .NET 的发布&#xff0c;最近有些更新&#xff0c;Current 版本将改为 STS 版本&#xff0c;所以写一篇文章介绍一下每年 11 月都会发布新的 .NET 主要版本&am…

【spring boot】8.spring boot的日志框架logback使用

在继续上一篇的Debug调试之后&#xff0c;把spring boot的日志框架使用情况逐步蚕食。 参考&#xff1a;http://tengj.top/2017/04/05/springbo 开篇之前&#xff0c;贴上完整application.properties日志相关配置 简介&#xff1a;spring boot的默认日志框架Logback SLF4J——…

通过iscsi配置在aix上挂载存储设备

本文中我们利用starwind虚拟存储进行设置&#xff0c;以下为实验环境说明&#xff1a;Windows环境&#xff1a;win7&#xff0c;ip address:10.3.5.7&#xff0c;iscsi initiator name &#xff1a;iqn.2008-08.com.starwindsoftware:joker-pc-aixAix环境&#xff1a;ip addres…

原生js声音播放代码

最终测试页页面 测试页面html代码(test.html) <!doctype html> <html lang"en"><head><meta charset"UTF-8"><meta name"Generator" content"EditPlus"><meta name"Author" content"…

写给 Kubernetes 工程师的 mTLS 指南

本文翻译节选自 A Kubernetes engineer’s guide to mTLS[1]&#xff0c;为了便于读者理解&#xff0c;笔者对原文做了一点修改 &#xff08;本文删除了原文中的与主题关系不大的 Linkerd 安装的部分&#xff0c;将 Twillio 替换成国内读者比较熟悉的 GitHub&#xff09;。因为…

二、solidity 基础进阶(2.1)—— library 库合约《实战NFT web3 solidity(新版本0.8.+)》

《web3 solidity0.8.版本&#xff08;持续更新新版本内容&#xff09; 基础到实战NFT开发》会及时更新新版本 solidity 内容&#xff0c;以及完成最终的 NFT 实战商业项目部分。 注&#xff1a;由于是付费专栏内容&#xff0c;若有错误请及时联系1_bit&#xff0c;博客链接&am…

paper 17 : 机器学习算法思想简单梳理

前言&#xff1a; 本文总结的常见机器学习算法&#xff08;主要是一些常规分类器&#xff09;大概流程和主要思想。 朴素贝叶斯&#xff1a; 有以下几个地方需要注意&#xff1a; 1. 如果给出的特征向量长度可能不同&#xff0c;这是需要归一化为通长度的向量&#xff08;这里以…

BZOJ1179 Atm //缩点+spfa

1179: [Apio2009]Atm Description Input 第一行包含两个整数N、M。N表示路口的个数&#xff0c;M表示道路条数。接下来M行&#xff0c;每行两个整数&#xff0c;这两个整数都在1到N之间&#xff0c;第i1行的两个整数表示第i条道路的起点和终点的路口编号。接下来N行&#xff0c…

基于Spring Boot和Spring Cloud实现微服务架构学习

目录 Spring 顶级框架 Spring cloud子项目 WHAT - 什么是微服务 微服务简介 微服务的具体特征 SOA vs Microservice HOW - 怎么具体实践微服务 客户端如何访问这些服务&#xff1f; 服务之间如何通信&#xff1f; 这么多服务&#xff0c;怎么找? 这么多服务&#x…

ArcGIS实验教程——实验三十七:基于ArcGIS的太阳辐射分析案例教程

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据)》 文章目录 一、太阳辐射的基本概念1. 视域2. 太阳图3. 星空图二、太阳辐射ArcGIS案例实现1. 对该区域进行太阳辐射区域分析2. 对单个点的太阳辐射进行分析太阳辐射是地球上各种物理过程和生物过程的…

ArcGIS实验教程——实验三十八:基于ArcGIS的等高线、山体阴影、山顶点提取案例教程

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据)》 文章目录 1. 加载DEM2. 提取等高距为15m的等高线3. 提取等高距为75m的等高线4. 生成山体阴影5. 生成三维等高线6. 提取山顶点7. 实验数据下载地址山顶点指那些在特定邻域分析范围内,该点都比周围…

(2.3)其他补充—— 二、solidity 基础进阶《实战NFT web3 solidity(新版本0.8.+)》

《web3 solidity0.8.版本&#xff08;持续更新新版本内容&#xff09; 基础到实战NFT开发》会及时更新新版本 solidity 内容&#xff0c;以及完成最终的 NFT 实战商业项目部分。 注&#xff1a;由于是付费专栏内容&#xff0c;若有错误请及时联系1_bit&#xff0c;博客链接&am…

如何在web api中使用SignalR

说明&#xff1a; 在webapi中使用signalr&#xff0c;使用IIS 环境&#xff1a; vs2012, .net4.5 第一步&#xff1a;建web api项目 第二步&#xff1a;nuget导入signalr Install-Package Microsoft.AspNet.SignalR Install-Package Microsoft.Owin.Cors &#xff08;用于…

Directx11学习笔记【二】 将HelloWin封装成类

我们把上一个教程的代码封装到一个类中来方便以后的使用。 首先新建一个空工程叫做MyHelloWin&#xff0c;添加一个main.cpp文件&#xff0c;然后新建一个类叫做MyWindow,将于窗体有关的操作封装到里面 MyWindow.h文件 1 /***************************************************…

Badboy自动化测试工具11 导出脚本用于Jmeter并发测试

本节主要讲解利用Jmeter进行并发测试和引入图像报表 1. 在Jmeter中打开上节课&#xff08;10&#xff09;Badboy导出的在拉手网查询KTV的脚本Lashou_Search.jmx. 2. 右击Lashou节点&#xff0c;Add->Listener->Aggregate Graph & Graph Results 3. 对图像报表进行配置…

ArcGIS实验教程——实验三十九:ArcGIS多元分类(ISO聚类分析、最大似然分类、主成分分析)案例教程

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据)》 文章目录 一、ISO聚类1. ISO聚类简介2. ISO聚类进行非监督分类实验操作二、最大似然分类1. 最大似然简介2. 最大似然分类实验案例三、主成分分析1. 主成分分析简介2. 主成分分析实验案例四、配套实…

ABP Framework 5.3.0 版本新增功能和变更说明

ABP Framework 5.3.0 稳定版已在2022年6月14日正式发布。以下是本版本的新增功能&#xff1a;• “开始”页面提供创建单层项目选项• 启动模板提供 PWA 支持• Volo.Abp.Gdpr.Abstractions 包介绍• 将发件箱中的事件批量发布到事件总线• eShopOnAbp 项目改进和电子书公告• …