我正在尝试构建一个Silverlight4 UserControl来呈现多个测试和测试的结果。我想为每个测试显示一个矩形,该矩形总结了该测试的一个或多个运行的结果。
我可以绑定到通用List,并让UserControl包含绘制矩形内容的所有逻辑,具体取决于测试次数和结果(pass = green; fail = red)?每个结果的宽度取决于测试的数量,因此整个矩形宽度始终是恒定的。这是用于报告目的的单向绑定。
我不确定这是否可行,或者我的Render()方法是否可以被调用?
答案 0 :(得分:0)
我试图想象你想要做什么。您是否想要一个具有多种颜色的矩形表示测试结果?因此,如果您需要,则可以使用渐变画笔来管理红色区域的位置。
<Rectangle Width="500">
<Rectangle.Fill>
<GradientBrush>
<!-- These can be managed by your user control -->
<GradientStop Color="Green" Offset=".2999" />
<GradientStop Color="Red" Offset=".3000" />
<GradientStop Color="Green" Offset=".3100" />
</GradientBrush>
</Rectangle.Fill>
</Rectangle>
请注意我们如何从.2999转到.3000,这将确保您的渐变看起来像素清晰。因此,您的第一个29.99%的测试结果是“通过”,然后1%失败,然后其余的通过。
因此,出于绑定目的,您需要找到一种方法将颜色和偏移值传递给UserControl,或者使用当前的通用列表并让UserControl根据结果生成GradientStops。
偏移量很有用,因为它们基于百分比。你的矩形总是500px(或任何你喜欢的),渐变将会跟随。