2011-04-13 84 views
2

是否可以在Silverlight內設置網格的列寬度?我有一個網格(不是網格視圖)與兩列。 ColumnA和ColumnB。我試圖完成的是當用戶點擊ColumnA中的一個按鈕時,ColumnA的寬度被設置爲.01。然後ColumnB應該擴大網格的整個寬度以填充剩餘的區域。類似於您如何固定或取消固定底座面板?以編程方式設置網格內的列寬度

這是最好的方法,還是應該恢復到一個dockpanel並讓SL處理它?我寧願自己管理它,而使用RAD控件,因爲我認爲這樣一個小而看似簡單的任務有點臃腫。

我的另一個想法是使用網格劃分器,但我不確定如何以編程方式摺疊或使用網格劃分器來擴展列?因此,我目前的困境。任何建議將不勝感激。

在此先感謝

+0

請分享您的xaml唯一格區 – Nario 2011-04-13 21:48:41

回答

10

給您ColumnDefinition的名稱通過Name屬性,如:

<ColumnDefinition Width="100" Name="FooColumn"/> 

然後,你可以指定一個新的寬度在代碼中,每當你想:

FooColumn.Width = new GridLength(1); 

(編輯:應該在這兩個地方使用相同的名稱...哎呀..你雖然有這個想法)

0
Try this 

<Grid x:Name="LayoutRoot" Background="White" ShowGridLines="True"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="100"/> 
      <ColumnDefinition/> 
     </Grid.ColumnDefinitions>  
     <sdk:GridSplitter />  
    </Grid> 

LayoutRoot.ColumnDefinitions.First().Width = new GridLength(); 
+0

感謝您的建議。當使用.First首先它似乎覆蓋兩列,我「放寬」在第二列的內容? – rlcrews 2011-04-14 13:13:41

相關問題