У меня возникла проблема с привязкой к свойству Rect RectangleGeometry. Основная идея здесь заключается в том, что я пытаюсь связать маску клипа для управления визуализированной высотой объекта псевдографики. Вот XAML:Binding RectangleGeometry.Rect не показывает прямоугольник
<Path x:Name="_value" Fill="{DynamicResource PositiveColorBrush}" Data="F1 M10,55 C10,57.75 7.75,60 5,60 2.25,60 0,57.75 0,55 L0,5 C0,2.25 2.25,0 5,0 7.75,0 10,2.25 10,5 L10,55 z">
<Path.Clip>
<!-- SECOND NUMBER CONTROLS THE HEIGHT : SCALE OF 0-60 REVERSED -->
<!--<RectangleGeometry Rect="0,22.82,10,60"/>-->
<RectangleGeometry
Rect="{Binding Score, Converter={StaticResource ChartBarScoreConverter}}" />
</Path.Clip>
</Path>
Обратите внимание на процитированную RectangleGeometry. Это отлично работает, когда я раскомментирую его и прокомментирую связанную RectangleGeometry. Конечно, он не изменит размер при изменении показателя.
Теперь, если я помещаю точку останова в ChartBarScoreConverter, я получаю правильное значение и возвращаю новый объект RectangleGeometry тех же спецификаций, что и прокомментированный там. Вот короткий код преобразователя:
...
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
RectangleGeometry output = new RectangleGeometry();
double score = 60; //0
if (Common.IsNumeric(value))
{
score = System.Convert.ToDouble(value) * .60;//scale is 0-60
score = 60 - score;//reversed (=
}
output.Rect = new Rect(0, score, 10, 60);
return output;
}
...
Когда приложение запущено, оно просто не показывает клип. Как я уже сказал, я поставил точку останова в конвертере и проверил, что он вызван, и возвращается объект с правильным размером ... но он просто не отображается в представлении.
Любые идеи?
Спасибо, Paul
Спасибо, Джон. Пятно на. –