[UWP] 模仿哔哩哔哩的一键三连

1. 一键三连

什么是一键三连?

哔哩哔哩弹幕网中用户可以通过长按点赞键同时完成点赞、投币、收藏对UP主表示支持,后UP主多用“一键三连”向视频浏览者请求对其作品同时进行点赞、投币、收藏。

去年在云之幻大佬的 哔哩 项目里看到一键三连的 UWP 实现,觉得挺有趣的,这次参考它的代码重新实现一次,最终成果如下:

下面这些是一键三连的核心功能:

  • 可以控制并显示进度
  • 有普通状态和完成状态
  • 可以点击或长按
  • 当切换到完成状态时弹出写泡泡
  • 点击切换状态
  • 长按 2 秒钟切换状态,期间有进度显示

这篇文章将介绍如何使用自定义控件实现上面的功能。写简单的自定义控件的时候,我推荐先写完代码,然后再写控件模板,但这个控件也适合一步步增加功能,所以这篇文章用逐步增加功能的方式介绍如何写这个控件。

2. ProgressButton

万事起头难,做控件最难的是决定控件名称。不过反正也是玩玩的 Demo,就随便些用 ProgressButton 吧,因为有进度又可以点击。

第二件事就是决定这个按钮继承自哪个控件,可以选择继承 Button 或 RangeBase 以减少需要自己实现的功能。因为长按这个需求破坏了点击这个行为,所以还是放弃 Button 选择 RangeBase 比较好。然后再加上 Content 属性,控件的基础代码如下:

[ContentProperty(Name = nameof(Content))]
public partial class ProgressButton : RangeBase
{
    public ProgressButton()
    {
        DefaultStyleKey = typeof(ProgressButton);
    }

    public object Content
    {
        get => (object)GetValue(ContentProperty);
        set => SetValue(ContentProperty, value);
    }
}

在控件模板中用一个 CornerRadius 很大的 Border 模仿圆形边框,ContentControl 显示 Content,RadialProgressBar 显示进度,控件模板的大致结构如下:

<ControlTemplate TargetType="local:ProgressButton">
    <Grid x:Name="RootGrid">
        <Border x:Name="RootBorder"
                        Margin="{TemplateBinding Padding}"
                        Background="{TemplateBinding Background}"
                        BorderBrush="{TemplateBinding BorderBrush}"
                        BorderThickness="1"
                        CornerRadius="100">
            <ContentControl x:Name="ContentControl"
                                    HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                    VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                    Content="{TemplateBinding Content}"
                                    Foreground="{TemplateBinding Foreground}" />
        </Border>
        <control:RadialProgressBar x:Name="PressProgressBar"
        
最低0.47元/天 解锁文章
前端如何使用JS一键三连还能白嫖视频?
weixin_46769087的博客
12-12 381
经常玩B站的同学一定知道,登录B站的情况下,如下图:但是,币总是有用完的一天,恰好今天我们遇到一个想一键三连的up主,但是没有币了,该怎么做呢?作为一个前端,搞定这个弹框还不容易吗?上我们的调大法!没有什么能阻止我们给up主一键三连()!
Git之一键三连&合作开发
qq_30108237的博客
05-01 523
GIT操作&多人开发在现有目录中初始化仓库使用GIT进行多人开发 说起git,就像生活中的许多伟大事物一样,Git也诞生于一个大举创新的年代。 由于2005年,开发BitKeeper的公司与Linux开源社区结束了合作关系,收回了社区免费使用BitKeeper的权利。迫使社区成员们去开发属于自己的版本管理系统,这就是GIT的来源。 与此同时,他们对于这套新的系统制定了若干目标: 速度 简...
Flutter 仿bilibili视频点赞分享收藏工具栏
weixin_43800535的博客
03-03 8214
Flutter 仿bilibili视频点赞分享收藏工具栏
uwp - 做一个相对炫酷的动画按钮/按钮动画
weixin_34021089的博客
11-07 534
原文:uwp - 做一个相对炫酷的动画按钮/按钮动画  看腻了系统自带的button animation何不尝试下自定义一个较为炫酷的动画顺便提升用户体验。效果图: 动画分为几个部分,分别是:内圆从中心放大(1)并同时渐隐(2),外圆从中心放大(3)并同时渐隐(4),按钮整体从中心缩小放大(5),非常简单对吧,代码也是。 为了方便调用,我用一个自定义用户控件来做,图标是用iconfont,...
Android高仿BiliBili
hilaochen的专栏
09-03 2802
lingxiaopua/BiliBili 使用ijkplayer,实现一个仿B站的Android客户端。使用组件化的思想对项目进行拆分,目前分出两个组件,一个是网络请求组件,一个是视频播放组件。 扫码体验: 组件化实现方案 组件化使用的方案出自张华洋的文章:Android组件化方案 在gradle.properties中,有一个isModule值,为true时是组件化模式...
云之幻UWP 哔哩哔哩bilibili
01-17
云之幻UWP 哔哩哔哩bilibili
哔哩哔哩UWP Ver4.3.8_x64
09-02
哔哩哔哩UWP Ver4.3.8_x64:简洁、易用、流畅的二次元视频体验》 哔哩哔哩UWP是一款专为Windows操作系统设计的通用Windows平台(UWP)应用,其版本号为4.3.8,适用于64位系统。该应用以其简洁的界面、易于操作的...
哔哩哔哩UWP Lite.zip
最新发布
11-10
【标签】"哔哩哔哩"和"bilibili"是同一个中国流行的弹幕视频分享网站的品牌名称,它提供了丰富的视频内容,包括动画、游戏、音乐、科技等多个领域,而"Bilibili UWP"则表明这是Bilibili官方或第三方为Windows平台...
哔哩哔哩UWP Ver4.3.2_x64.zip
07-16
哔哩哔哩UWP应用详解与安装指南》 哔哩哔哩,作为国内领先的二次元文化社区,其UWP(Universal Windows Platform)版本为Windows 10用户提供了一个集视频观看、直播互动、社区交流于一体的平台。本次我们将深入...
android 点赞放大,Android自定义View实现点赞控件
weixin_39631370的博客
05-26 231
本文实例为大家分享了Android点赞控件的具体代码,供大家参考,具体内容如下预览效果目录图片类:LikeImageView文字类:LikeCharTextView整合类:LikeView.java自定义属性:attrs.xml代码LikeCharTextViewpublic class LikeCharTextView extends View {public static final int ...
Android点赞控件--仿掘金点赞七成效果
weixin_34074740的博客
04-13 431
0. 前些日子偶然看到掘金推荐里的点赞效果,感觉有些酷炫,然后在一个无所事事的早上,我决定实现一个类似的功能,但是只有七成的效果,效果图如下。 1. 这个效果我把它们分成了几个阶段: (1)默认阶段:就是一个竖起来的大拇指 (2)收缩阶段:大拇指逐渐缩小直到消失 (3)放大阶段:圆圈由小到大 (4)圆环阶段:圆圈有中心破裂,露出大拇指 (5)卫星阶段:出现卫星,向远处逐渐偏离同时逐渐消失 2. ...
云之幻哔哩哔哩uwp_【UWP】一款很 Fluent Design 的 Bilibili UWP客户端:哔哩
weixin_28814457的博客
01-08 4405
前言:B站,这个大家应该不用我多说了,之前还专门做了一期 Up 主推荐。现在小破站有点像发展成中国版 Youtube,活跃用户早已破亿,也就是说,每十来个人,就有一个B站用户。而今天向大家推荐一款最新的哔哩哔哩第三方客户端,是因为这一款设计的界面UI很用心,使用起来非常方便,远远超过你先去问问B站官方开发的UWP客户端,那个交互真的不行唉(一些B站UWP应用)(号主推荐的哔哩UWP)...
csdn 一键三连代码 
韩旭051的博客
06-04 2338
csdn 一键三连代码 if($('#is-like-span').text()=="点赞") { $('#is-like-span').click(); } $('#comment_content').text('点赞,评论,收藏,已三连' ) $('.btn-comment').click() if($('#is-collection').text().length==2) { $('#is-collection').click(); // $('.btn-collected')..
UWP入门(五)--控件模板
怪咖先森的博客
03-21 2354
通过在 XAML 框架中创建控件模板,你可以自定义控件的可视结构和可视行为(eg:勾选框的三种状态)。 控件有多个属性,如 Background、Foreground 以及 FontFamily,可以设置这些属性以指定控件外观的多个方面。 但是可以通过设置这些属性所做的更改有限。 你可以通过使用 ControlTemplate 类创建模板来指定其他自定义。 我们在此处介绍如何创建 ControlTe
[c#][Windows 10 | Windows 10 mobile]UWP自适应UI——VisualStateManager
u013850311的博客
10-25 2419
在新的UWP中,写一份代码即可将应用在多种不同的分辨率上运行,那么怎么去自适应各种大小的UI,我们可以采用VisualStateManager。 目标:实现以下界面 我们先在xaml的根Grid中。写两个Grid,分别是第一页和第二页 然后我们有两种方式,一种是打开Blend,另一种是通过
UWP 视觉状态管理 VisualStateManager
weixin_34186931的博客
05-02 457
<Page x:Class="sharedstylewithdatatemplate.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x...
云之幻哔哩哔哩uwp_云之幻哔哩哔哩uwp
weixin_33089345的博客
12-23 700
云之幻哔哩哔哩uwp是云之幻版本的B站PC客户端,能够帮助用户以插件的形式在桌面上直接观看B站内容,使用起来比网页体验感更加好,感兴趣的用户不要错过了,欢迎下载使用!软件特色这个UWP客户端当然有出色的设计。和过去几个同类应用不同,它整个UI经过全新设计,包含UWP各种时髦的设计元素,例如acrylic、reveal、connected-animation等都用上了,可以说是十分Fluent De...
哔哩哔哩UWP安装包
08-26
哔哩哔哩UWP的安装包可以在微软商店上找到,它的下载链接是:https://www.microsoft.com/store/productId/9NBLGGH5Q5FV。 你可以通过点击链接进入该页面,然后点击安装即可下载和安装哔哩哔哩UWP应用程序。 另外,...
写文章

热门文章

  • WinUI 3 试玩报告 4463
  • [Azure DevOps] 使用 Azure Pipelines 实现 CI 2654
  • [WPF自定义控件库]使用WindowChrome的问题 2219
  • [WPF自定义控件库]了解如何自定义ItemsControl 2171
  • WinUI 3 Preview 3 发布了,再一次试试它的性能 1732

分类专栏

  • C# 2篇
  • Azure DevOps 10篇
  • Azure 2篇
  • WPF 47篇
  • UWP 34篇

最新评论

  • [Azure DevOps] 使用 Azure Pipelines 实现 CI

    haoranzai: Marked

  • [Windows] Prism 8.0 入门(下):Prism.Wpf 和 Prism.Unity

    yaozzj2: MVVM Toolkit 这个好,十分感谢

  • WinUI 3 试玩报告

    VAPOR24: 命名也太混乱了...

  • [Azure DevOps] 如何使用任务组

    大家一起学编程(python): 大佬666

  • [Azure DevOps] 使用 Azure Pipelines 实现 CI

    大家一起学编程(python): 来过

大家在看

  • Linux网络命令
  • 做项目管理的利器甘特图,有了AI的加持秒出!手把手教会你 701
  • 使用image watch查看图片像素值
  • 学习011-01 Why We Recommend EF Core over XPO for New Development(为什么我们推荐在新开发中使用 EF Core 而不是 XPO)
  • 基于SpringBoot+Vue的宿舍管理系统 695

最新文章

  • [WPF] 使用 MVVM Toolkit 构建 MVVM 程序
  • [WPF] 使用 Visual Studio App Center 持续监视应用使用情况和问题
  • [Azure DevOps] 如何使用任务组
2021年20篇
2020年18篇
2019年38篇
2018年9篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

天下网标王闵行区百度网站优化排名如何优化招聘网站搜索引擎优化网站链接湖南网站优化州网站优化推广印刷网站优化培训福建网站优化咨询客服河津网站优化哪家强网站怎么看优化优化网站推广排名教程上海网站优化如何蚌埠网站优化公司哪家好贵溪网站优化平台小金口网站优化价格顺义网站快速优化梅州seo网站关键词优化教程宁波网站推广优化联系电话南园独立网站优化无锡专业网站优化效果普宁推广排名优化SEO网络网站西安企业网站优化湛江seo网站关键词优化教程福建靠谱的网站优化服务网站前端性能优化松江网站优化伦敦网站优化专家高州网站排名优化洪梅企业网站优化荔湾网站推广优化seo网站排名优化软件香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化