请考虑以下LinearGadientBrush
,'A'。通常,如果将该笔刷指定为矩形的背景,则无论大小如何,都会使用整个渐变填充整个区域。 (见B)。是否有可能只渲染一个GradientBrush的百分比?
我们试图说'对于这个特定的控件,只能使用刷子的第一个xx%来填充',所以我们可以实现基于百分比的渐变填充,如'C'。
注:我们知道我们将负责展示其百分比,因为没有办法让系统自动计算什么的百分比表示。
我们目前正在做这件事的方式显示在'D'中。我们以100%的大小定义一个矩形(所以填充为100%),然后将其放置在另一个控件中并左对齐。然后,我们将外部控件的ClipsToBounds
设置为true,并将其宽度设置为内矩形宽度的所需百分比。 (见D)这种方法很有效,但在视觉树中添加了额外的元素,如果可能的话,我们试图消除这些元素。
关闭,但这里有一个问题。由于StartPoint和EndPoint是笔刷本身的属性,因此每个渲染值需要一个笔刷实例。尽管如此,它还是不适合你的信息,因为它引导了我刚刚发布的使用MappingMode达到同样效果的答案。 – MarqueIV