在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)