问题标签 [canvas]

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.

0 投票
2 回答
632 浏览

apache-flex - 限制 Flex 中“PopUp”的模态大小?

我有这个 :

是否可以限制 myCanvas 内的模态(模型透明度颜色)?或者甚至在画布之外的其他东西里面?

0 投票
2 回答
800 浏览

apache-flex - 限制 Flex 中模态弹出窗口的大小?

是否可以限制模态弹出窗口(“模态透明度颜色”)的大小,使其包含在画布内?

0 投票
2 回答
2422 浏览

wpf - 带有用户控件的画布中的 MVVM

我有一个 MVVM WPF 应用程序,它基本上想成为配电网络的单线图设计器。

我有一个必须包含变压器、断路器、线路和电缆的画布。

我的大问题是设计......我该如何开始?

我想到了一个 DesignerView,DesignerViewModel 包含一个 IDesignerItemViewModel 的 ObservableCollection,它是我所有元素的基类。但在这种情况下,我必须使用 ItemsControl 将画布的内容绑定到我的集合,但优点是我不必为每个元素创建用户控件,但我会用 DataTemplate 解决大部分问题(我想) . 每个元素视图模型都包含一个指向模型的链接,该模型保存在我维护我的逻辑树的存储库中。

关于如何进行的任何提示,我查看了许多 DiagramCanvas 示例,但所有这些都使用简单的项目,最像简单的矩形......

0 投票
1 回答
413 浏览

apache-flex - Flex Bipmapdata 和滚动画布

我有一个画布,它是一个绘图区。此画布可以水平和垂直滚动。

我正在尝试制作整个画布的屏幕截图,其中包括可见部分和滚动部分。

这只会显示画布的可见部分及其滚动条:/

你会如何解决这样的问题?在这种情况下,使用 board.width + board.horizo​​ntalScrollPosition 不会有帮助。

非常感谢。

0 投票
2 回答
3328 浏览

apache-flex - Flex Child Canvas 提出一个 Canvas 和调整大小的问题

我有一个带有滚动策略的画布 A,A 有一个独特的子画布 B,它没有滚动。

A 是 B 的容器,它是一个类似白板的工具。

如果我不设置 B 的宽度和高度,他将根据 A 大小调整大小,直到 A 具有滚动条的某个点,这是良好的行为。

但是,由于每当我动态添加或移动元素时,B 画布似乎都会动态调整大小,所以它会变得有点慢。

我可以通过将 100% 的百分比宽度和高度设置为 B 来解决它,当我执行

B 实际上是 A 视图(带有滚动条)。

如果我删除百分比高度和宽度,它将是预期的整个画布。

完美的是保持百分比高度和宽度,而子宽度小于父 A 宽度。当 B 宽度变得比 A 大时,百分比宽度应该停止。

我应该在 B 的哪个函数中处理这样的代码?是 updatelist() 吗?

谢谢 !

0 投票
1 回答
1222 浏览

javascript - 是否有 HTML/JavaScript 画布元素的测试套件?

我正在为画布界面开发一个备用后端。我开始设置测试用例,然后我想到可能已经有一组测试,但谷歌并没有出现。

0 投票
2 回答
8160 浏览

javascript - 在 HTML 画布元素上绘制文本的最佳方法是什么?

不幸的是,canvas 元素不能很好地处理文本。有很多方法(参见例如http://canvaspaint.org/blog/2006/12/rendering-text/),但它们大多看起来像黑客。我能做些什么是跨平台的,并给我最大的灵活性来让我的字体像我想要的那样?

0 投票
2 回答
3672 浏览

wpf - WPF Canvas:Children.Add() 挂在后台线程上?

...或者...

“我唤醒了 WPF 深处的什么邪恶?”

我正在后台线程上创建一个 Canvas 并将其渲染为位图。我已经在生产代码中工作了一年多了,没有问题。我执行以下操作:

  • 创建一个画布对象
  • 创建一个新的 NameScope 对象
  • 将该 NameScope 分配给 Canvas
  • 在画布上画出我想要的任何东西
  • 使用 Canvas 的大小调用 canvas.Measure()
  • 使用 Canvas 的可用矩形调用 canvas.Arrage()
  • 调用 canvas.UpdateLayout()
  • 渲染画布

在绘制步骤中,我总是调用 canvas.Children.Add() 将 UIElements 放到 Canvas 上。这一直有效。

现在,由于某种莫名其妙的原因,在我正在处理的应用程序的一个特定情况下,对 canvas.Children.Add() 的调用无限期地挂起,阻塞了我的后台线程。我想不出我在已经工作了一年多的代码和这个特定案例之间做的任何不同。

任何人都可以提出对 canvas.Children.Add() 的调用会这样挂起的可能原因吗?

编辑:后台线程是一个 STA 线程(后台线程处理模型已经到位,因为我无法在 MTA 线程上使用 WPF 处理图像),所以线程单元模型不应该是罪魁祸首。

编辑#2:虽然我理解人们为什么建议我从我的后台线程中尝试 Dispatcher.BeginInvoke(),但我不喜欢这个选项有两个原因:

  1. 我希望我的后台线程处理在该线程上是同步的。我的后台线程有一个队列,其他线程将图像作业提交到该队列,并且我的后台线程在每个作业到达它们时对其进行处理。使用 Dispatcher.BeginInvoke() 增加了我宁愿避免的另一层复杂性。
  2. 直到现在我才需要。在我的后台线程上同步执行此后台处理工作很简单。我正在尝试确定导致此代码无法工作的这种奇怪的边缘情况可能有什么不同。如果我不能让它工作,我最终会在没有 WPF 的情况下重写这个处理代码,我也宁愿避免这种情况。
0 投票
3 回答
9447 浏览

wpf - WPF 可调整大小的画布

我需要实现一个Canvas根据它的大小来缩放它的内容。我知道有Viewbox,它可以缩放其中的所有内容。但是我不能使用它,因为某些元素具有固定大小并且无法缩放。

另外,如何将 的大小绑定Canvas到父元素(例如可调整大小的窗口)。windows有sizeToContent,我希望大小正好相反。此外,画布使用一些基于托管元素大小的绘图,如何触发重绘以及如何确保它仅在获得有效(或最小)大小时才绘制?

0 投票
1 回答
4411 浏览

resize - SWT 画布位置

我正在使用最新的稳定版本的 SWT。

我有一个包含 ToolBar、ScrolledComposite 和 Canvas 的 Shell。Canvas 被设置为 ScrolledComposite 的内容(例如 scrolledComposite.setContent(canvas))。画布以永远不变的特定尺寸创建(例如,400 x 400)。而 ScrolledComposite 不断增长或缩小以填充可用的父 shell 的客户区域。

我有一个附加到父 Shell 的调整大小侦听器,它尝试执行以下操作:a)如上所述增长 ScrolledComposite 和 b)在 ScrolledComposite 中水平和垂直居中画布(参见下面的示例代码)。

这与在 Mac OS X 上的工作方式完全相同,但是在 Windows 上会触发 resize 事件并正确计算新位置,但最终 Canvas 会恢复为 0,0。另一个小信息是,如果您不断调整窗口大小,您会看到画布闪烁,并且看起来好像是在正确的位置短暂绘制。