考虑以下LinearGadientBrush
,“A”。通常,如果您指定该画笔作为矩形的背景,它将用整个渐变填充整个区域,无论大小如何。 (参见 B)。
我们试图说“对于这个特定的控件,仅使用画笔的前 xx% 进行填充”,这样我们就可以实现基于百分比的渐变填充,如“C”中所示。
注意:我们知道我们将负责显示哪个百分比,因为系统无法自动计算百分比代表什么。
我们目前的做法如“D”所示。我们以所需大小的 100% 定义一个矩形(因此填充为 100%),然后将其放置在另一个控件内并左对齐。然后,我们将外部控件的 ClipsToBounds 设置为 true,并将其宽度设置为内部矩形宽度的所需百分比。 (参见 D)这种方法有效,但会在可视化树中添加额外的元素,如果可能的话,我们会尝试消除这些元素。
最佳答案
使用 LinearGradientBrush 的 EndPoint 属性。在您的情况下,如果您设置 EndPoint="2,0"
您应该获得您正在寻找的所需结果。
如果您需要做一些更动态的事情,您可以将点对象绑定(bind)到 EndPoint 属性。如果将该值设置为 1,0,它将显示 100% 的渐变,或者 2,0 将显示前 50% 的渐变。
StartPoint
允许您在渐变的另一侧执行相同的操作。
关于wpf - 是否可以只渲染 GradientBrush 的一定百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19371497/