在Silverlight中,界面元素都是通过附加属性的方式定位的,界面元素本身不包含表示位置的属性。这一特性在设计时通过Xaml代码处理没有任何问题,可是如果需要在程序运行过程中调整界面元素的位置就有点麻烦了。至少很多初学Silverlight的朋友不知道怎么以代码方式调整界面元素的位置。
如果想以代码方式调整Canvas上的界面元素的位置,只需要使用容器对象的SetTop和SetLeft方法就可以了。假设一个名为tbNumberd的TextBlock控件位于在一个Canvas上,那么相应的定位代码如下:
Canvas.SetTop(tbNumberd, 50)
Canvas.SetLeft(tbNumberd, 100)
如果界面元素是位于Grid容器上,则调用Grid的SetRow和SetColumn方法。例如下面的代码就可以将tbNumber控件定位到Grid的第二行、第四列了:
Grid.SetRow(tbNumber,1)
Grid.SetColumn(tbNumber,3)