Silverlight控件绑定和渲染

时间:2011-05-12 04:43:43

标签: data-binding silverlight-4.0 user-controls

我正在尝试构建一个Silverlight4 UserControl来呈现多个测试和测试的结果。我想为每个测试显示一个矩形,该矩形总结了该测试的一个或多个运行的结果。

我可以绑定到通用List,并让UserControl包含绘制矩形内容的所有逻辑,具体取决于测试次数和结果(pass = green; fail = red)?每个结果的宽度取决于测试的数量,因此整个矩形宽度始终是恒定的。这是用于报告目的的单向绑定。

我不确定这是否可行,或者我的Render()方法是否可以被调用?

1 个答案:

答案 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(或任何你喜欢的),渐变将会跟随。