问题标签 [win2d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C#/WPF 合并连续的事件调用
Win2D 具有此功能Invalidate()
,调用时将重绘整个控件,并且在快速连续调用时,它们将合并为一个更新,其中包含先前调用的任何更改。我试图在我自己的应用程序中重新创建它,但我找不到与此描述完全匹配的框架。
假设每次我单击图表时,都会添加一条线。我想要发生的是,如果有人连续点击 100 次,它将等到点击完成后一次添加所有行,而不是一次添加一行。同样,调整窗口大小应该只重绘一次图表,而不是每次触发事件时。
我尝试过使用System.Reactive
,但它们的大部分合并/节流似乎忽略了以前的调用,并且我不能OnCompleted()
在事件上使用订阅的部分,因为它永远不会“完成”。
有没有人有解决这样的问题的经验?我正在寻找使用计时器来产生一种延迟,但我想知道是否已经有一些东西可以按照描述的方式工作。
xaml - 在我的像素着色器(UWP、Win2D)中支持多种颜色输入
我一直在开发一个可以提供颜色替换的应用程序,并且在解决方案上从 @Jet Chopper 那里得到了很多帮助。他为我提供了以下代码,该代码基本上使用 ControlSpectrum 控件来控制源颜色和目标颜色。这个想法是您指定一个源颜色,然后将其替换为目标颜色。这是当前的工作代码:
这是我的原始帖子,其中包含带有 GIF 的原始解决方案。 原帖
XAML:
代码:
像素着色器:
所以我的下一步是将这个解决方案向前推进一步,同时引入更多的颜色替换。所以我改变了一切以支持两种颜色:
我的改变
XAML:
代码:
像素着色器:
所以基本上我只是将 XAML、代码和像素着色器中的所有内容都翻了一番。但是对于像素着色器,我不确定通过将两个结果相乘我的返回值是否正确。我是否能够一次更换一种以上的颜色?
c# - 不支持的位图格式。字节数组到 SoftwareBitmap (UWP C#)
帮助无法将字节数组转换为 SoftwareBitmap。错误:
c# - Win2D:如何在可缩放的圆圈内绘制中心图像
我正在尝试在 c# 中使用 Win2D 在圆圈内绘制缩放图像,但我没有这样做。
我的尝试是例如:
发生的情况是图像似乎是在窗口的 X=0 和 Y=0 位置绘制的(画布使用所有窗口),所以我的圆圈在窗口的中间,然后只有一点图像被绘制我希望我的图像被放置在圆的中心。
所以问题是: - 我的规模是否正确完成?为什么要除以 96?我可以从系统中读取这个吗?- 是否可以只模糊图像的边缘?- 我怎样才能在圆圈的中心绘制我的图像?
谢谢
win2d - Win2D 在 C++/WinRT 中是否可用?
我需要在我的 cppwinrt 项目中使用 win2D。使用 Win2D 示例文件作为模型,我试图模仿它的设置,从该项目中放入 win2d 的包文件,复制自定义构建步骤,但我无法编译它。我记得有人谈到 Win2D 很快就会添加到标准 cppwinrt 头文件中,以便可以像其他这些美妙的 cppwinrt 接口一样访问它。这是可能很快发生的事情吗?或者是否有人对在当前 Visual Studio 2017 环境中使用 Win2D 有一些非常具体的说明?我在 Insider 预览计划中,但没有看到任何内容。谢谢。
c# - 使用具有比例纵横比的 Win2D 调整图像大小
我的 UWP Win2D 应用程序出现问题。我在 CanvasAnimatedControl 中显示了一个图像和文本,当我调整窗口大小时,它会拉伸图像和文本而不是保持它们的比例:
这是加载和绘制图像的代码的一部分:
示例项目可以在这里下载:
我需要更改什么以使图像和文本不会在调整大小时拉伸?
c# - 将字节数组传递给 PixelShaderEffect
我正在 C#/UWP/Win2D 应用程序中基于非标准像素格式的文件快速制作图像动画。图像之间存在相关性(想想翻书动画),但没有任何程序化。
我已经编写了一个原型,并在下面包含了相关代码。“白色”和“黑色”颜色最终将转换为颜色查找表(例如 5 = 白色)
性能很好~60FPS,FrameWidth/FrameHeight 为 512,但在 1024 时下降到~30FPS。任何比这更大的性能更差。
使用大数据对此进行分析表明,颜色数组的循环和 SetPixelColors 调用是瓶颈。
我尝试了几种方法来加快速度(PLINQ、Parallel.ForEach、数据预排队),但未能比上面找到的形式更快。
我相信处理这个问题的正确方法是为 CanvasRenderTarget 创建一种新的受支持类型的 DirectXPixelFormat,这样我就可以使用 SetPixelBytes。这似乎是不可能的。
下一个正确的选项似乎是编写一个接受 frameBytes 的 PixelShaderEffect,以灰度创建像素,然后将其用作另一个效果的来源来设置颜色。
我找不到任何创建 IGraphicsEffectSource 的示例。
任何建议、文档,或者最重要的是,一个有效的“这是您将字节数组传递到 PixelShaderEffect 的方式”将不胜感激。
uwp - 如何在 CanvasGeometry 上添加效果
在我看来,Win2D 中可用的所有效果都是用于绘制图像的。
怎么样CanvasGeometry
?我如何绘制CanvasGeometry
使用,比如说发光效果?
谢谢。