首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UWP -如何创建具有重复模式的CompositionSurfaceBrush

UWP(Universal Windows Platform)是由Microsoft开发的一种应用程序开发框架,旨在为Windows平台上的各种设备提供一致的用户体验。它允许开发者使用C#、C++、Visual Basic等编程语言编写应用程序,可以在PC、平板电脑、手机、Xbox等多种设备上运行。

CompositionSurfaceBrush是UWP中的一个可用于绘制可视元素的画刷类型。它可以将一个可视元素或者一个CompositionSurface对象(即可由独立的UI线程操作的图形资源)用作绘制内容。具有重复模式的CompositionSurfaceBrush允许将指定的可视元素或图形资源在绘制时进行重复平铺,以填充整个绘制区域。

要创建具有重复模式的CompositionSurfaceBrush,可以按照以下步骤进行:

  1. 首先,确保你已经引入了Windows.UI.Composition命名空间。
代码语言:txt
复制
using Windows.UI.Composition;
  1. 创建一个Compositor对象,用于管理组合(composition)和可视化效果。
代码语言:txt
复制
Compositor compositor = new Compositor();
  1. 创建一个Visual对象,用于表示可视元素或图形资源。
代码语言:txt
复制
Visual visual = compositor.CreateSpriteVisual();
  1. 创建一个SurfaceBrush对象,并将Visual对象设置为其源。
代码语言:txt
复制
CompositionSurfaceBrush brush = compositor.CreateSurfaceBrush();
brush.Surface = visual;
  1. 设置重复模式。
代码语言:txt
复制
brush.Stretch = CompositionStretch.Fill;
brush.HorizontalAlignmentRatio = 0.5f;
brush.VerticalAlignmentRatio = 0.5f;
brush.TransformMatrix = Matrix3x2.CreateScale(2.0f);

在这个例子中,使用了Fill模式,将Visual对象的内容以平铺方式填充整个绘制区域。通过设置HorizontalAlignmentRatio和VerticalAlignmentRatio属性,可以控制填充的起始位置。通过设置TransformMatrix属性,可以对Visual对象进行缩放、旋转、平移等变换操作。

这是一个简单的示例,展示了如何创建具有重复模式的CompositionSurfaceBrush。在实际应用中,你可以根据具体需求和场景进行更复杂的配置和操作。

推荐的腾讯云相关产品和产品介绍链接地址: 腾讯云的图像识别服务可以与UWP应用程序集成,实现对图像的智能分析和识别。你可以了解腾讯云的TI+ 图像识别产品,它提供了多种图像识别能力,包括场景识别、物体识别、人脸识别等,为UWP应用程序增加智能化的图像处理能力。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

win10 uwp 渲染原理 DirectComposition 渲染 例子创建工程如何写显示CompositionSurfaceBrush

如果需要高性能画图,通过 win2d 是一个很好方法。大家也知道创建win2d只是显示,不会有交互,如果需要交互需要自己写。虽然写一个交互很简单,但是如果没有使用框架,重复代码很多。...创建工程 首先创建一个 UWP 项目,注意选择比较高目标。 ? 如何写显示 现在创建项目,删除所有的 app 和 mainpage 类。重新创建一个类。...本文不会告诉大家如何写交互,只是告诉大家如何显示。 删除了所有的自动生成代码,现在创建一个类 View ,用来显示。...通过这个类可以使用 d2d 来画,在 UWP 简单使用方法是 win2d 所以下面告诉大家如何使用 win2d 来画。 但是 UWP 底层是直接使用d2d没有经过 win2d 封装。...CompositionSurfaceBrush 如何显示?

2.8K10

抄抄《CSS 故障艺术》动画

我们熟知抖音 LOGO 正是故障艺术其中一种表现形式。它有一种魔幻感觉,看起来具有闪烁、震动效果,很吸引人眼球。故障艺术它模拟了画面信号出现故障导致成像错误感觉。...上个月看到CSS 故障艺术这篇文章,最近想转换心情于是开始抄它动画了(顺便为博客园UWP板块吊命)。...CSSmix-blend-mode好像很好用,这次用UWP中Win2DBlendEffect模仿它玩法。 2....各种模式文字混合效果 CompositionAPI没有提供文字书写功能,倒是Win2D有提供这个功能,我在用Win2D实现镂空文字有介绍如何使用Win2D创建出一个包含文字CompositionSurfaceBrush...源码 DinoChan_uwp_design_and_animation_lab 一个收集UWP设计和动画项目。

70420
  • 使用AlphaMaskEffect提升故障艺术动画性能(顺便介绍怎么使用性能探测器分析UWP程序)

    前几天发布了抄抄《CSS 故障艺术》动画这篇文章,在这篇文章里介绍了如何使用Win2D绘制文字然后配合BlendEffect制作故障艺术动画。...一个很复杂情况是,我需要使用两个这段代码绘制出来CompositionSurfaceBrush作为BlendEffect输入,而CompositionSurfaceBrush本质上是一张位图,而作为...接下来只要用显示文字CompositionSurfaceBrush作为CompositionMaskBrushSource,用上面这张图片制作CompositionSurfaceBrush作为Mask...左边是旧代码(每次改变高度重新绘图),右边是新代码(对作为MaskCompositionSurfaceBrush进行Scale动画),可以看到……嗯,好像新动画是刘畅了些。 ? ?...Class 合成画笔 - UWP applications Microsoft Docs

    69210

    win10 uwp 进度条 WaveProgressControl

    昨天看到了有个大神做出好看进度条样式,于是我就去抄袭他代码,但是发现看不懂,于是本文主要翻译就是大神说这个控件如何做。 ?...因为可以使用下面图片方式,看起来就是从一个圆里出现背景。实际就是背景移动图片,可以看到图片移动时候,看里面的圆背景,就是上面那张图样子。 ?...也就是在图片上移就是进度,可以用 Percent 来知道现在进度,然后计算显示高度,很容易就计算出上移。...下面就是代码,如果现在 UWP 可以做出随意裁剪,就不需要使用 Compositor 为了使用 Compositor 需要使用字段 Compositor ,而且需要一个 double 属性,用于做进度...compositor.CreateLinearEasingFunction()); waveOffsetXAnimation.Duration = TimeSpan.FromSeconds(1);//一秒重复一次

    78400

    如何使用Python中装饰器创建具有实例化时间变量新函数方法

    1、问题背景在Python中,我们可以使用装饰器来修改函数或方法行为,但当装饰器需要使用一个在实例化时创建对象时,事情就会变得复杂。...例如,我们想要创建一个装饰器,可以创建一个新函数/方法来使用对象obj。如果被装饰对象是一个函数,那么obj必须在函数创建时被实例化。...如果被装饰对象是一个方法,那么必须为类每个实例实例化一个新obj,并将其绑定到该实例。2、解决方案我们可以使用以下方法来解决这个问题:使用inspect模块来获取被装饰对象签名。...以下代码示例演示了如何实现此解决方案:from types import InstanceTypefrom functools import wrapsimport inspectdef dec(func...请注意,这种解决方案只适用于对象obj在实例化时创建情况。如果obj需要在其他时间创建,那么您需要修改此解决方案以适应您具体情况。

    8910

    C#如何创建一个可快速重复使用项目模板

    写在前面 其实很多公司或者资深开发都有自己快速创建项目的脚手架,有的是魔改代码生成器实现,有的直接基于T4,RazorEngine等模板引擎打造;但无论如何,其最终目的其实就是搭建一个自定义项目模板...今天我们聊聊:如何基于官方cli donet new 命令创建自己项目模板。...什么是项目模板 我想用一个命令来说明: dotnet new list 到这里大家就非常熟悉了,原来大家平时创建项目都是基于已有的模板创建(红圈部分大家应该不陌生);我们今天目的就是创建一个这样模板...,并在vs新建项目时可供选择创建项目,或者使用cli命令直接创建; 当然,还有公开模板: https://dotnetnew.azurewebsites.net/ 创建自己模板 1、先准备好一个项目...-Source参数,如果你有搭建好自己nuget服务端的话改成你自己如何使用一个模板 模板有了,怎么用这个就简单了; vs使用 在创建项目时直接选择自定义模板 不过这样的话,自定义参数都是用默认值

    7610

    dotnet C# 从控制台开始 关联 Win2D 和 WinUI 3 应用

    本文将告诉大家如何从最简单控制台开始搭建,让 Win2D 和 WinUI 3 关联起来,让 Win2D 可以将内容渲染到 WinUI 3 应用上 本文适合想了解 WinUI 3 基础机制以及 Win2D...阅读本文将可以了解到一个简单方式,简单到使用控制台项目即可进行搭建整个简单应用 在 上一篇博客 里,告诉大家可以如何简单从控制台搭建起一个 WinUI 3 应用。...本文将在此基础上告诉大家如何关联上 Win2D 进行基础界面绘制 大概制作出来应用界面如下图 上图里面的左上角灰色矩形就是使用 Win2D 绘制出来内容,中间文字则是 TextBlock 控件所提供界面内容...本文重点都在于如何让 Win2D 绘制出上图左上角灰色矩形 当然了,只要 Win2D 能在上面绘制出灰色矩形,自然也就能绘制出更多有趣界面内容了 按照 dotnet 惯例,在开始之前,咱需要安装...尽管预乘可能会造成精度丢失问题,但是可以减少后续步骤重复计算过程。

    12810

    win10 uwp 如何打包Nuget给其他人 创建空白spec对空白spec进行修改创建简单库批量创建不同平台 dll 可以给不同需要打包

    本文告诉大家,如果自己有做一些好用库,如何使用 Nuget 打包之后上传,分享给大家。...首先需要知道一些 Nuget 打包需要知道,请看 win10 uwp 上传Nuget 让别人用我们库 但是 UWP 包和上面说有一些不同,需要对打包做一些修改。...可以到 csdn 下载 Nuget 程序或者到https://www.nuget.org/downloads下载 创建空白spec 使用 Nuget 命令在空白文件夹进行创建空白包,使用命令nuget...,但是 UWP 有一些不同,我现在没有使用上面博客方法可以成功上传,于是就需要做一些修改。...创建简单库 上面写叫 metadata ,写完之后可以创建一个新 UWP 库,我在这创建一个叫 NrzlmhRzvy 库 在里面创建一个类 ?

    65510

    如何将GridViewEX升级到UWP(Universal Windows Platform)平台

    引言 上一篇文章中,我们主要讲解了如何在保证GridView控件用户体验基础上,扩展GridView生成GridViewEx控件,增加动态添加新分组功能等,本文在上文基础上,介绍如何在Windows10...Demo 下载: GridViewLiveTiles.zip GridViewEx.zip  GridViewDemo.zip 开发UWP应用程序 开发UWP应用程序最好是从创建empty项目开始,重用已开发一些模块...本文为了创建UWP 应用程序,首先创建一些通用类如下,详细代码见附件: Common/VisibilityConverter.cs Common/LayoutAwarePage.cs Common/SuspensionManager.cs...因此创建UWP应用程序,首先需要删除所有ApplicationViewStates代码。可能会导致使用LayoutAwarePage部分会报错。因此我们需要做一些兼容性改变。...因此只需要开发一个基类,应用到不同Xaml 页面中就可以实现轻松实现导航功能,不需要重复编写代码。

    2.8K80

    dotnet 从入门到放弃 500 篇文章合集

    1.1.5 win10 uwp 商业游戏 1.2.1 win10 uwp 图标制作器 win10 UWP 圆形等待 win10 uwp 如何创建修改保存位图 win10 uwp 如何判断一个对象被移除...文字到另一个TextBlock win10 uwp 如何让 Page 继承泛型类 win10 uwp 如何让一个集合按照需要顺序进行排序 win10 UWP 序列化 win10 UWP 应用设置 win10...创建不带BOM UTF8 博客 图论 Warshall 和Floyd 矩阵传递闭包 在 windows 安装 Jekyll 域名 大文件存储和备份 如何使用 C# 爬虫获得专栏博客更新排行 如何使用...Q# 如何使用 Telegram 如何使用本模板搭建博客 如何入门 C++ AMP 教程 如何写毕业论文 表格 如何删除错误提交 git 大文件 如何UWP 使用 wpf Trigger 如何安装...给博客添加rss订阅 自动机 解决 vs 出现Error MC3000 给定编码中字符无效 解决 VS 跳转定义和 Resharper 重复 解决 Win10 UWP 无法使用 ss 连接 让 AE

    10.4K20

    Windows桌面自动化测试工具:WinAppDriver

    WinAppDriver 相对于其他 UI 自动化测试工具,具有以下优点和特色: 支持 Windows 应用程序:WinAppDriver 是专门为 Windows 应用程序设计自动化测试工具,与 Windows...通过 WinAppDriver,可以在 Windows、iOS 和 Android 平台上执行统一测试脚本,减少重复工作和维护成本。...总之,WinAppDriver 是一个专为 Windows 应用程序设计自动化测试工具,具有广泛兼容性和强大功能。...通用 Windows 平台应用程序(Universal Windows Platform Applications,UWP):UWP 应用程序是一种跨设备应用程序,可以在多种 Windows 平台上运行...Microsoft Store 应用程序:这些应用程序是通过 Microsoft Store 下载和安装应用程序,也属于 UWP 应用程序一种。

    3.2K41

    UWP入门教程1——UWP前世今生

    目录 引言 设备族群 UI 和通用输入模式 通用控件和布局面板 工具 自适应扩展 通用输入处理 引言 在本篇文章中,可以掌握以下知识: 设备族群,如何决定目标设备 新UI控件和新面板帮助你适应不同设备特征...这样有助开发者使用同一代码库创建通用Windows8 app。 将近三年之后,微软重头产品Windows 10终于横空出世。...作为系统内核一部分,UWP 现在提供创建通用App平台(即App在运行Windows10所有设备中都可以运行),当然微软内部也做出了改进,UWP 不仅包含了WinRT API,也增加了适应特定设备群...如何做决策: 最大化App 覆盖量 为了实现App 覆盖设备最大化,保证它能够在尽可能多设备中运行,可把App目标定位通用设备族群。...这样做目的,App会就可以使用所有设备族群,(从通用设备族群派生) 限制App 适应某一种设备 限制App适应某一类设备 排除只支持某一特殊版本设备族群 UI 和通用输入 UWP  App能够在具有不同特征设备中运行

    1.2K50

    C# 设计模式 责任链

    责任链模式是一种对象行为模式。在责任链模式里,很多对象由每一个对象对其下家引用而连接起来形成一条链。请求在这个链上传递,直到链上某一个对象决定处理此请求。...发出这个请求客户端并不知道链上哪一个对象最终处理这个请求,这使得系统可以在不影响客户端情况下动态地重新组织和分配责任。《JAVA与模式》 我们在 C# 也可以使用责任链。...首先我们定义员工,他可以发送出责任需要让我们具体处理者处理,但是我们这时看到了主管等其实有重复,如果主管不同意处理,那么就没必要进行HR同意,所以我们IHandle有AreHandle是不是被处理...新建一个类,这个类用做责任,通过这个类,可以做 MVVM ,如果对于这个不熟,请看 win10 uwp MVVM入门 本文告诉大家如何做出双击退出应用。 首先需要创建两个类作为责任链,请看下面。...所以在责任链,需要注意同步和异步转换,如果实在需要,那么请参见我博客,如何把异步转同步。

    54930

    【译】Visual Studio 2019 中 WPF & UWP XAML 开发工具新特性

    创建数据绑定,以绑定包含公共属性,元素名称,索引属性路径(集合),附加属性和强制转换属性路径。...实时可视化树中Just My XAML: 实时可视化树是一项功能,当 UWP 和 WPF 开发人员在调试模式下运行其应用程序时,它们是可用,并且是与 XAML Hot Reload 相关实时编辑工具一部分...在预览时,此功能也仅适用于 WPF .NET Core 应用程序,不支持扩展性,也不具有完整功能。 ?...您还可以使用 Windows 应用程序打包项目为具有 Islands .NET Core 3 生成 MSIX。要了解如何入门,请访问我们文档。...包装和签名 UWP应用(v16.3)签名证书: 通过清单设计器恢复了创建和导入签名证书文件(.pfx)功能。我们还引入了通过打包向导创建和导入签名证书功能,以简化签名过程。

    7.3K30

    UWP 创建动画极简方式 — LottieUWP

    提到 UWP创建动画,第一个想到大多都是 StoryBoard。因为 UWP 和 WPF 界面都是基于 XAML 语言,所以实现 StoryBoard 会非常方便。...一个椭圆,通过 StoryBoard 中 TranslateX 和 TranslateY 设置,在 RepeatBehavior 为 Forever 情况下,重复做位移动画。...LottieUWP 概述 Lottie 是 Airbnb 研发团队研发并开源一套创建和播放动画方案,可以非常方面的在全平台实现高质量动画,支持 Android, iOS, Web, UWP。...这里是 Lottie UWP Git 地址:https://github.com/azchohfi/LottieUWP,下面实际看一下 Lottie UWP SDK 使用方法: 创建一个 C# UWP...作者关于如何提高动画性能也做了提示: 对于没有 masks 或 mettes JSON 文件,性能和内存占用都会很理想,因为不存在 bitmap 创建过程; 如果有 mattes,2-3 个 bitmap

    1.5K70
    领券