2009-09-16 2 views
0

У меня есть свойство:Bind свойства Shape и присоединенные свойства к свойствам

public double S { get; set; } 

... и XAML:

<Canvas Name="MainCanvas"> 
    <Ellipse Canvas.Left="10" Canvas.Top="10" Height="10" Name="ellipse1" Stroke="Black" Width="10"/> 
</Canvas> 

Как можно связывать как Ellipse Width и Height свойствами и придает Canvas.Left и Top, чтобы я мог задавать значения для разных долей S?

Так что Canvas.Left и Top могут быть 1/2f * S, тогда как ширина и высота могут быть 3/4.

ответ

1

Используйте конвертер значений в привязке, чтобы выполнить расчет для вас.

<Ellipse Canvas.Left="{Binding Path=S,Converter=LeftConverter}" ... /> 

В преобразователе значение, вы бы:

public object Convert(object value, Type targetType, object paramenter, CultureInfo culture) 
{ 
    double value = Double.Parse(value); 
    return value * 0.5; 
} 

Этот код не тестировался, но вы должны получить работу. Проверьте этот образец here