1

[UWP]在应用退出时弹出确认提示框

1. 需求 在应用退出时(点击右上角的关闭按钮)弹出一个确认按钮可以说是一个最常见的操作了,例如记事本的“你是否保存”: 但这个功能在UWP上居然有点小复杂。这篇文章将解释如何实现这个功能。 2. CloseRequested 为了监视应用退出事件,我本来使用了 "CoreApplication.E ...

dino.c 发布于 2019-12-11 09:12 评论(4)阅读(206)
2

[UWP]使用CompositionGeometricClip裁剪复杂图形及进行动画

1. UWP中的其它裁剪方案 之前在 "这篇文章" 里,我介绍了如何使用 "UIElement.Clip" 裁剪UIElement的内容,使用代码如下: 在 "另一篇文章里" 我介绍了如何使用 "CanvasActiveLayer" 裁剪Win2D内容,使用代码如下: 这两种方式都有他们的局限:Ca ...

dino.c 发布于 2019-12-10 08:16 评论(3)阅读(129)
1

迁移桌面程序到MS Store(13)——动态检查Win10 API是否可用

假设我们现有一个WPF程序,需要支持1903以前的Windows 10版本。同时在1903以后的版本上,额外多出一个Ink的功能。那么我们就可以通过ApiInformation.IsApiContractPresent方法来判断1903的API是否可用,决定要不要开放Ink功能给当前用户。新来的同学 ...

楼上那个蜀黍 发布于 2019-12-02 13:41 评论(1)阅读(61)
6

[UWP]UIElement.Clip虽然残废,但它还可以这样玩

1. 复习一下WPF的UIElement.Clip 用了很久很久的WPF,但几乎没有主动用过它的Clip属性,我只记得它很灵活,可以裁剪出多种形状。在 "官方文档" 复习了一下,大致用法和效果如下: WPF的Clip是一个 "Geometry" 属性,它有多种派生类: 有这么多种Geometry,W ...

dino.c 发布于 2019-12-02 09:10 评论(4)阅读(268)
2

【UWP】仅在TextBlock文本溢出时显示Tooltip

前言 这是我今天在回答SO问题时偶然遇到的,觉得可能还比较通用,就记录下来以供参考。 通常,我们使用 最简单的方式是这样: 这样在光标悬浮在 上方时,会显示一个提示条,但是这似乎又违背了一个设计原则: ToolTip作为提示,应该仅在当前内容显示不全,且用户有意愿查看完整内容时作为替代元素出现 这很 ...

云之幻 发布于 2019-11-30 08:31 评论(5)阅读(36)
5

[UWP]用Win2D和CompositionAPI实现文字的发光效果,并制作动画

1. 成果 献祭了周末的晚上,成功召唤出了上面的番茄钟。正当我在感慨“不愧是Shadow大人,这难道就是传说中的五彩斑斓的黑?” “那才不是什么阴影效果,那是发光效果。”被路过的老婆吐槽了。 系系系,老婆说的都系对的。我还以为我在做阴影动画,现在只好改博客标题了? 要实现上面的动画效果,首先使用Co ...

dino.c 发布于 2019-11-27 06:25 评论(8)阅读(325)
5

迁移桌面程序到MS Store(12)——WPF使用UWP InkToolbar和InkCanvas

我们在《迁移桌面程序到MS Store(4)——桌面程序调用Win10 API》提到了对Win10 API的调用,但仍存在无法在WPF中使用UWP控件的问题,虽然都是XAML控件,但却是两套命名空间下的同名类型,无法混用。人总会被现实打败,强大如某软也得向生活低头,UWP一直没有起色,某软的老大又一 ...

楼上那个蜀黍 发布于 2019-11-26 17:07 评论(1)阅读(251)
6

[UWP]用Win2D实现镂空文字

1. 前言 之前用PointLight做了一个番茄钟,效果还不错,具体可见这篇文章: "[UWP]使用PointLight并实现动画效果" 后来试玩了Win2D,这次就用Win2D实现文字的镂空效果,配合PointLight做一个内敛不张扬的番茄钟。 实现镂空文字的核心思想是使用CanvasGeom ...

dino.c 发布于 2019-11-25 09:05 评论(0)阅读(311)
3

[UWP]通过自定义XamlCompositionBrushBase实现图片平铺

1. 什么是XamlCompositionBrushBase 我早就想试试自定义XamlCompositionBrushBase,但一直没机会。上一篇文章介绍到 "使用Win2D的BorderEffect实现图片的平铺功能" ,原理很简单,但每次都要写这些代码很繁琐,正好就用这个作为例子试试Xaml ...

dino.c 发布于 2019-11-20 09:00 评论(2)阅读(154)
5

[UWP]使用Win2D的BorderEffect实现图片的平铺功能

1. WPF有,而UWP没有的图片平铺功能 在WPF中只要将ImageSource的 属性设置为 即可实现图片的平铺,具体可见WPF的这些文档: "ImageBrush 类 (System.Windows.Media) _ Microsoft Docs" "TileBrush 类 (System.W ...

dino.c 发布于 2019-11-18 08:54 评论(4)阅读(274)
4

迁移桌面程序到MS Store(11)——应用SVG图标

在传统桌面程序中,对图标的使用大多是直接嵌入JPG或者PNG的图片。在祖传的1366x768分辨率下,并没有什么问题。相对于手机硬件的突飞猛进,也侧面反映了PC行业的落寞和桌面程序开发的不思进取。用360卫士的群众并不能倒推PC行业的升级。反倒是水果公司双高的利润和口碑让人很是眼馋。加之某软跳出来教 ...

楼上那个蜀黍 发布于 2019-11-14 17:00 评论(4)阅读(242)
5

[UWP]使用CompositionAPI的翻转动画

1. 运行效果 在 "使用GetAlphaMask和ContainerVisual制作长阴影(Long Shadow)" 这篇文章里我介绍了一个包含长阴影的番茄钟,这个番茄钟在状态切换时用到了翻转动画,效果如上所示,还用到了弹簧动画,可以看到翻转后有点回弹。本来打算自己这个动画效果写的,但火火已经写 ...

dino.c 发布于 2019-11-14 09:03 评论(3)阅读(195)
9

[UWP]为番茄钟应用设计一个平平无奇的状态按钮

1. 为什么需要设计一个状态按钮 "OnePomodoro" 应用里有个按钮用来控制计时器的启动/停止,本来这应该是一个包含“已启动”和“已停止”两种状态的按钮,但我以前在WPF和UWP上做过太多StateButton、ProgressButton之类的东西,已经厌倦了这种控件,所以我在 应用里只是 ...

dino.c 发布于 2019-11-13 09:47 评论(5)阅读(406)
9

[UWP]使用SpringAnimation创建有趣的动画

1. 什么是自然动画 最近用弹簧动画(SpringAnimation)做了两个番茄钟,关于弹簧动画官方文档已经介绍得够详细了,这篇文章就摘录一些官方文档核心内容。 在传统UI中,关键帧动画(KeyFrameAnimation)是描述运动的主要方式。关键帧为设计人员和开发人员提供了尽可能多的用于定义开 ...

dino.c 发布于 2019-11-11 09:27 评论(2)阅读(251)
6

[UWP] 为WinRT组件创建Nuget包

Nuget 是 dotnet 开发中必不可少的包管理工具,但不仅仅局限于 dotnet 项目,在 VS 中使用 C++ 开发的时候,也可以使用 Nuget 来引用第三方组件。同样也可以用 Nuget 把 native 的一些组件打包,提供给自己或者别人使用。 这片博文记录一下如何把 WinRT 组件 ...

cjw1115 发布于 2019-11-09 17:13 评论(2)阅读(153)
9

[UWP]使用PointLight并实现动画效果

1. Composition Lighting UWP中的Composition Light是一组可以创建3D光照的API,它明明十分好玩而且强大, 但博客园几乎没有相关文章(用 或`pointlight`做关键字只能找到我自己的文章),这篇文章就 来介绍Composition Lighting的入 ...

dino.c 发布于 2019-11-06 08:55 评论(18)阅读(526)
7

[UWP]使用GetAlphaMask和ContainerVisual制作长阴影(Long Shadow)

1. 什么是长阴影 前几年扁平化设计(Flat Design)十分流行,后来在扁平化的基础上又流行起了长阴影(Long Shadow)。长阴影其实就是扩展了对象的投影,感觉是一种光线照射下的影子,通常采用角度为 45 度的投影,给对象添加了一份立体感。长阴影快速发展为流行的设计趋势,并经常被应用到扁 ...

dino.c 发布于 2019-11-04 09:02 评论(4)阅读(165)
3

[UWP]使用GetAlphaMask制作阴影

1. 前言 最近常常接触到GetAlphaMask,所以想写这篇文章介绍下GetAlphaMask怎么使用。其实GetAlphaMask的使用场景十分有限,Github上能搜到的内容都是用来配合DropShadow的,所以这篇文章也以介绍DropShadow为主。 2. 合成阴影 先介绍一下合成阴影 ...

dino.c 发布于 2019-10-30 09:07 评论(0)阅读(143)
7

[UWP]CompositionLinearGradientBrush加BlendEffect,双倍的快乐

1. 什么是BlendEffect 上一篇文章介绍了CompositionLinearGradientBrush的基本用法, 这篇文章再结合BlendEffec介绍一些更复杂的玩法。 命名空间下的 "BlendEffect" 用于组合两张图片(分别是作为输入源的Background和Foregrou ...

dino.c 发布于 2019-10-28 09:21 评论(4)阅读(185)
5

[UWP]使用CompositionLinearGradientBrush实现渐变画笔并制作动画

1. 什么是 CompositionBrush CompositionBrush(合成画笔)是操作可视化层时用于绘制 "SpriteVisual" 区域的画笔。 使UWP 应用时可以选择使用 "XAML 画笔" 或 "CompositionBrush(合成画笔)" 绘制 UIElement。很多时候 ...

dino.c 发布于 2019-10-23 08:55 评论(0)阅读(155)