2009-09-16 150 views
0

我有一個屬性:綁定形狀屬性和附加屬性,以性能

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> 

我如何地結合橢圓WidthHeight附加的屬性和Canvas.LeftTop屬性,以便我可以將值設置爲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