动态检索画布中元素的x,y位置

时间:2011-08-18 09:14:54

标签: silverlight

我有这段代码

        <Canvas x:Name="SampleCanvas" Background="#F5F7F9"  MouseLeftButtonDown="brdMovable_MouseLeftButtonDown" MouseLeftButtonUp="brdMovable_MouseLeftButtonUp" MouseMove="brdMovable_MouseMove" Height="570" Width="875">                    
         <chartingToolkit:Chart  x:Name="mcChart" Loaded="mcChart_Loaded"  Width="400" Height="250" Canvas.Left="190" Canvas.Top="5" MouseLeftButtonDown="brdMovable_MouseLeftButtonDown"
                             Background="LightSteelBlue">
                        <chartingToolkit:Chart.RenderTransform>
                            <ScaleTransform x:Name="scaleTransform"></ScaleTransform>
                        </chartingToolkit:Chart.RenderTransform>
                        <chartingToolkit:Chart.Series>
                            <chartingToolkit:ColumnSeries Title="Experience"  IndependentValueBinding="{Binding Path=ModelName}" DependentValueBinding="{Binding  Path=SaleCount}">
                            </chartingToolkit:ColumnSeries>
                        </chartingToolkit:Chart.Series>
                    </chartingToolkit:Chart> 
          </canvas>

现在我想在代码隐藏中动态检索canvas.Left位置和canvas.Top位置mcChart。

我该怎么做? 感谢。

2 个答案:

答案 0 :(得分:2)

您需要对mcChart的引用。然后,您可以使用附加属性访问器来获取当前值:

double left = Canvas.GetLeft(mcChart);
double top  = Canvas.GetTop(mcChart);

在代码中设置值:

Canvas.SetLeft(mcChart, 50);
Canvas.SetTop(mcChart, 100);

答案 1 :(得分:1)

怎么样:

Canvas.GetLeft(mcChart);
Canvas.GetTop(mcChart);