在画布中绘制项目时,位置是从画布中项目的顶部开始:
<Canvas Name="cnvMain"
Width="80"
Height="80">
<Ellipse Canvas.Top="20"
Canvas.Left="40"
Width="40"
Height="40"
Fill="Gray" />
</Canvas>
现在我需要的是从元素的底部进行测量,如下所示:
最后,我希望能够设置从椭圆底部到画布顶部的距离。注:椭圆有时不能是一个圆,翻转它是不可能的。此外,我不知道运行前的高度,因此在xaml中设置负边距也不起作用。
(图片和示例xaml取自:http://weblogs.asp.net/psheriff/centering-text-within-a-wpf-shape-using-a-canvas)
如果要指定椭圆底部到画布底部的距离,可以替换画布。在画布上方。底部:
<Ellipse Canvas.Bottom="20" Canvas.Left="40" Width="40" Height="40" Fill="Gray"/>
对于从椭圆底部到画布顶部的距离,您可以指定负边距:
<Ellipse Canvas.Top="20" Canvas.Left="40" Width="40" Height="40" Fill="Gray"
Margin="0,-40,0,0"/>
或适当的渲染转换:
<Ellipse Canvas.Top="20" Canvas.Left="40" Width="40" Height="40" Fill="Gray">
<Ellipse.RenderTransform>
<ScaleTransform ScaleY="-1"/>
</Ellipse.RenderTransform>
</Ellipse>
为了反转整个画布坐标系的y方向,可以对画布应用渲染变换:
<Canvas ... RenderTransformOrigin="0,0.5">
<Canvas.RenderTransform>
<ScaleTransform ScaleY="-1"/>
</Canvas.RenderTransform>
...
</Canvas>
编辑:您也可以将椭圆放在另一个高度为零的画布中,并将其附加到较低的画布边框:
<Canvas Canvas.Top="20" Canvas.Left="40" Width="0" Height="0">
<Ellipse Canvas.Bottom="0" Width="40" Height="40" Fill="Gray"/>
</Canvas>
我错过了什么? 为了便于阅读,这里提供了一个要点,并附带了一个测试用例:https://Gist.github.com/teyc/5668517
主要内容:Canvas控件基本属性,Canvas控件绘图常用方法Canvas 控件具有两个功能,首先它可以用来绘制各种图形,比如弧形、线条、椭圆形、多边形和矩形等,其次 Canvas 控件还可以用来展示图片(包括位图),我们将这些绘制在画布控件上的图形,称之为“画布对象”。 每一个画布对象都有一个“唯一身份ID”,这是 Tkinter 自动为其创建的,从而方便控制和操作这些画布对象。 通过 Canvas 控件创建一个简单的图形编辑器,让用户可以达到自定义图形的
我的活动布局如下: 当我将布局中的animateLayoutChanges设置为true时,每当NestedScrollView内部发生布局更改时,生成的布局就会与AppBarLayout的内容重叠。 我尝试了这个评论中的建议,但没有任何帮助。 有没有人遇到类似/相同的问题并找到解决办法?
画布组件说明 组件 说明 最低版本 canvas 画布 1.0.0 canvas 属性 类型 默认值 必填 说明 最低版本 canvas-id string 否 canvas 组件的唯一标识符,若指定了 type 则无需再指定该属性 disable-scroll string 否 当在 canvas 中移动时且有绑定手势事件时,禁止屏幕滚动以及下拉刷新 bindtouchstart eventha
当FLTK需要重画控件时将调用虚拟函数draw().只有在damage()返回非0值时调用该函数,draw()返回后,damage()被清0。Draw()应该被声明为保护成员函数,避免在不需要写画图代码时用到。 Damage()将包含从最后一次调用draw()后damage(n)调用产生的所有与或位信息,根据该信息只重画需要重画的位置,只有FLTK认为需要全部重画时才打开FL_DAMAGE_ALL
使用后记多年,我现在正在学习SVG。PS有一个功能是我迄今为止无法复制的:零宽度线。在 PS 中,宽度为零的行始终可见:PostScript 将零行宽转换为最小的可打印宽度。在屏幕上,当缩放时,它们永远不会有任何思考,但无论比例如何,它们都可见。当我想渲染非常细的线条时,我已经使用了它们,而不会担心我将要使用的最终分辨率,事实证明它们非常有用。 然而,在官方SVG文档(https://www.w3