Как привязать ScaleTransformation.X к слайдеру в Silverlight 3 - PullRequest
1 голос
/ 05 декабря 2009

Мне нужно увеличить холст. В WPF можно привязать ScaleTransformation.X к slider.Value.

Я не могу сделать то же самое в Silverlight - некоторые ошибки.

Поддерживается ли он в SL3?

Спасибо.

1 Ответ

0 голосов
/ 06 декабря 2009

Причина, по которой это не работает, заключается в том, что в SL3 цель привязки должна быть FrameworkElement. (Это ограничение снято в SL4, но сейчас это не помогает).

Однако решение просто требует небольшого бокового мышления (или в данном случае обратного мышления). Исходный объект не обязательно должен быть элементом Framework. Таким образом, ответ - обратная привязка, то есть привязка к свойству Slider Value и перевод его в режим TwoWay.

<Border Width="200" Height="200">
    <Border.RenderTransform>
        <ScaleTransform x:Name="TargetTransform" />
    </Border.RenderTransform>
    <!-- Some Content Here -->
</Border>

<Slider Value="{Binding ScaleX, ElementName=TargetTransform, Mode=TwoWay}"
    Width="200" Canvas.Top="250" 
    Minimum="0.1" Maximum="2.0" />
...