Привязка Silverlight к TranslateX - PullRequest
4 голосов
/ 06 июня 2010

У меня есть простое приложение winphone7, но я думаю, что это применимо к любому Silverlight.

По сути, у меня есть эллипс, и я хотел бы переместить его со свойствами translate X и Y. Вот моя попытка:

<Ellipse Fill="#FFF4F4F5" Margin="0,0,-3,-3" Stroke="Black" RenderTransformOrigin="0.5,0.5" >
            <Ellipse.RenderTransform>
                <CompositeTransform TranslateY="{Binding Y}" TranslateX="{Binding X}"/>
            </Ellipse.RenderTransform>
</Ellipse>

Я почти уверен, что привязка установлена ​​правильно; Проблема в том, что при запуске приложения возникает ошибка:

2260 Произошла ошибка. [Линия: 4 позиции: 33]

, что является ошибкой XAML. Ошибка исчезает, когда я закомментирую строку composittransform.

Кто-нибудь может указать мне правильное направление? Если вам нужно больше кода, дайте мне знать, я выложу больше.

Спасибо

1 Ответ

5 голосов
/ 06 июня 2010

Windows Phone 7 в настоящее время основан на среде выполнения Silverlight 3, а не на Silverlight 4.

Одним из ограничений в Silverlight 3 является то, что вы можете связывать только элемент, производный от FrameworkElement. Классы преобразования не являются производными от FrameworkElement и, следовательно, не могут участвовать в связывании.

Вместо того, чтобы перемещать эллипс с помощью привязки, рассмотрите возможность использования Storyboard для анимации преобразования.

...