2013-07-17 28 views
0

3列網格內的方式,我有使用WPF和一些第三方控件(Telerik的)以下網格:無法獲得電網分流工作,我想在WPF

<Grid x:Name="grid2" Grid.Row="1"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" MinWidth="150"/> 
      <ColumnDefinition Width="5"/> 
      <ColumnDefinition Width="*" MinWidth='80'/> 
     </Grid.ColumnDefinitions> 
     <Grid Grid.Column="0"> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="26"/> 
       <RowDefinition/> 
      </Grid.RowDefinitions> 
      <telerik:RadBreadcrumb Grid.ColumnSpan="3" Header="RadBreadcrumb"/> 
      <telerik:RadTreeView Grid.Row="1"/> 
     </Grid> 
     <GridSplitter Grid.Column="1" HorizontalAlignment="Center" Width="5" Height="auto"/> 
     <telerik:RadTransitionControl x:Name="Trans" Grid.Column="2" Width="auto"/> 
    </Grid> 

目前,我試圖讓它使得列0中的網格(左側)在重新調整窗口大小時不會重新調整大小。通過將列「0」的寬度設置爲靜態150或自動,我能夠實現這種效果。但是,當我這樣做時,網格分離器不再遵守第2列的最小寬度,並允許它拖出屏幕。通過將第0列和第2列設置爲星形的寬度(我現在在代碼中使用它的方式),最小寬度受到尊重(列不能縮小超過定義的150和80)但它們不重新調整大小正確的(左欄按右欄的比例重新調整大小)。我想以某種方式讓resize和gridsplitter同時工作。如果我不夠清楚或需要更多輸入,請告訴我。

+0

我剛剛嘗試加載並運行Xaml,並且當telerik控件被替換爲停靠面板時它似乎可以正常工作。這意味着什麼?......調整大小和分裂網格同時工作?或者這是一個telerik特定的問題? –

+0

我會嘗試將RowDefinitions直接拉入網格。而使用分離器時,通常不會設置自動寬度。 – Paparazzi

+0

@GarryVass,我沒有理由相信這是一個Telerik特定的問題,並且通過重新調整大小和分割器同時工作,我的意思是我希望解決兩個問題,我必須用同一段代碼。我希望當我重新調整窗口的左側列的寬度以不重新調整大小時,以及當我將柵格分離器拖動到遠處的邊緣時,它會在我打開任一列的MinWidth時停止。目前我可以做這兩個,但不能用同一段代碼。 –

回答

0

所以,這不正是我一直在尋找,但它做的工作對我來說:

 <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="auto" MinWidth="150" MaxWidth="1000"/> 
      <ColumnDefinition Width="5"/> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 

我把我的左手列的MaxWidth這樣你就可以不再拖累分離器超過了右側的不歸路。該解決方案還允許我將第一列的寬度設置爲自動(這使得重新調整大小的工作方式也符合我的預期)。除非你的顯示器寬度小於1000像素(在我工作的環境中不會發生),否則這種解決方案只能使用XAML。再一次,我對這個解決方案有點失望,但它至少以簡單的方式工作。

+0

這解決了一個不同的問題。它與您最初發布的域名不同。但一切都很好,結束了... –