Управление связыванием и рендерингом Silverlight - PullRequest
1 голос
/ 12 мая 2011

Я пытаюсь создать пользовательский элемент управления Silverlight4 для отображения результатов нескольких тестов и тестовых запусков.Я хочу отобразить прямоугольник для каждого теста, который суммирует результаты одного или нескольких прогонов для этого теста.

Можно ли привязать к универсальному списку, и чтобы UserControl содержал всю логику для рисования содержимогопрямоугольник, в зависимости от количества тестов и результатов (pass = green; fail = red)?Ширина каждого результата будет зависеть от количества тестов, поэтому общая ширина прямоугольника всегда будет постоянной.Это односторонняя привязка для целей отчетности.

Я не уверен, возможно ли это или когда можно вызвать мой метод Render ()?

1 Ответ

0 голосов
/ 12 мая 2011

Я пытаюсь представить, что ты пытаешься сделать.Вы хотели один прямоугольник с несколькими цветами, представляющими результаты теста?Итак, если вы хотите, то вы можете использовать градиентную кисть для управления расположением красных зон.

<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 (или что угодно), и будет следовать градиент.

...