- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在this question and answer的帮助下,我设法创建了一个径向进度条。这实现了圆弧绘制概念,其中圆弧绑定(bind)到起始角和结束角。
我现在遇到的问题是我希望进度条从圆弧中心开始呈放射状渐变。这使进度条从圆弧内部到圆弧外部具有“线性渐变”。我试图在圆弧的笔划上应用径向渐变(ProgressBar 的 Foreground 属性),但这会在圆弧笔划的中心应用径向渐变,而不是圆弧对象的中心(如下所示)。
当弧度为 100%(或任何高于 75%)时,笔画的中心位于弧的中心,这会产生所需的结果。
我如何才能始终如一地将径向渐变的中心调整到圆弧的中心,以便在所有填充百分比下应用所需的渐变?或者是否有更好的解决方案/方法来解决这个问题?
最佳答案
由于您使用的 RadialGradient
很可能是 Relative
,它会根据弧的实际大小更改其中心。
当圆弧处于 75% 或更高时,Arc
生成的Geometry
处于其最大Width
和 Height
,因此稳定并覆盖整个控件。
您要做的是,绘制整个圆并遮盖“原始”圆弧之外的部分。在你的情况下,简单的方法是用这个替换 Arc.OnRender
方法:
Arc.cs
protected override void OnRender(DrawingContext drawingContext)
{
// half the width and height of the Arc
double radiusX = RenderSize.Width / 2;
double radiusY = RenderSize.Height / 2;
// the outlines of the "original" Arc geometry
PathGeometry clip = GetArcGeometry().GetWidenedPathGeometry(
new Pen(Stroke, StrokeThickness));
// draw only in the area of the original arc
drawingContext.PushClip(clip);
drawingContext.DrawEllipse(Stroke, null, new Point(radiusX, radiusY), radiusX, radiusY);
drawingContext.Pop();
}
解释
GetArcGeometry
) 计算得到的未修改的Geometry
Pen
扩展它(GetWidenedPathGeometry
)DrawingContext
忽略该区域之外的任何内容 (Push(clip)
)DrawEllipse
)DrawingContext
从现在开始忽略 clip
(Pop
)结果
关于c# - 具有径向渐变的 WPF 径向进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37449585/
我正在尝试快速创建一个径向 CAGradientLayer。普通 CAGradientLayers(默认类型 axial)没有问题。它们在模拟器中的快照和运行时呈现良好。 当我拍摄我创建的 UIVie
我想用 CSS 制作一个径向进度指示器,它的中间圆圈是透明的。看这里:http://codepen.io/geedmo/pen/InFfd – 这是我想要做的事情的完美示例,但中间 (.overlay
我已经编写了用于生成网络图的 UI、服务器和 global.r。它适用于一种布局(layout.fruchterman.reingold)。我想要一个用于列出布局的单选按钮(径向、对角线网络和 den
我正在使用 jqwidgets。在那些小部件中,我使用的是径向量规。对于那个径向仪表,我想给出径向背景色。我有一个类似这样的代码,用于更改径向仪表中的背景颜色。 $('#gauge').jqxGaug
有谁知道我可以用来为 iOS 应用程序创建饼图(径向)菜单的库(开源或其他)? 看来现在应该有人想到了这一点,如果没有必要,我不愿意自己动手。 最佳答案 我不久前发现的一个。 http://www
我正在使用 this code为我的数据获取径向 TreeMap 。但是,我想修改它以避免弯曲链接。相反,我对线性直接连接感兴趣。弯曲的链接使插图不那么复杂,特别是当我们的子节点数量较少时。例如,您可
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我正在使用 chrome 18.0.1025.162 并尝试进行径向渐变 -webkit-radial-gradient(circle, rgba(100, 100, 100, 0.2), rgba(
我想呈现漂亮的径向树布局,但有点被弯曲的边缘绊倒了。问题是源点和目标点之间的角度不同,边缘的绘制方式也不同。提供的图片来自单个图表,因此您可以看到它们在不同边缘方向上有何不同。我认为关键在于 beiz
我希望我的工具栏使用 Material 设计径向 react 编排指南改变颜色 我想将其实现为 Angular 2 过渡,但我不知 Prop 体该怎么做: 看起来像这样.. @Component({
我目前正在使用以下代码绘制形状; GLfloat vertex = // vertex points glLineWidth(2); glEnableClientState(GL_VERTEX_ARR
我是一名优秀的程序员,十分优秀!