2014-01-06 141 views
0

顯然,在使用SharedSizeGroup時,不能使用星號大小(*)。這已經在這裏討論: Grid's SharedSizeGroup and * sizingItemsControl with SharedSizeGroup AND stretch

不幸的是,在這個討論中,他們並沒有真正提供可行的解決方案。

我想顯示一個列表控件,每行一個控制,具有以下佈局:

(名稱)(輸入文本)(X按鈕)

它應該是這樣的:

Description [      ] X 
Name  [      ] X 
ID   [      ] X 

但不是我越來越

Description [] X 
Name  [] X 
ID   [] X 

第1欄應儘可能寬的LON gest詞。第2列(即條目文本框)應該伸展以填充所有剩餘空間(*),但不能像前面討論的那樣用於SharedSizeGroup。該*被視爲自動,因此不可伸縮。

任何想法?這裏的XAML:

 <ItemsControl ItemsSource="{Binding FilterList}" Margin="5,0,5,0" Grid.IsSharedSizeScope="True"> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate> 
        <Grid Margin="5,0,5,0" HorizontalAlignment="Left"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition SharedSizeGroup="Column0" Width="Auto"/> 
          <ColumnDefinition SharedSizeGroup="Column1" Width="*"/> 
          <ColumnDefinition SharedSizeGroup="Column2" Width="Auto"/> 
         </Grid.ColumnDefinitions> 
         <Label Grid.Column="0" Content="{Binding FilterLabel}" HorizontalAlignment="Right"/> 
         <TextBox Grid.Column="1" Height="20" Text="{Binding FilterString, UpdateSourceTrigger=PropertyChanged}"/> 
         <Button Grid.Column="2" Content=" X " Margin="2" Visibility="{Binding ClearFilterVis}" Command="{Binding ClearFilterCommand}"/> 
        </Grid> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 
+1

第二列:''將佔用所有可用空間。在這種情況下,你不需要sharedsizegroup,也不需要''''' –

+0

試過。我仍然遇到上述問題。它正在縮小,只佔用空白文本框所佔用的空間,這並不多。換句話說,它就像第一列一樣。 – NielW

回答

1

那是因爲你設置Grid's HorizontalAlignment,而不是左拉伸的。或者只是刪除Grid's HorizontalAlignment設置。正如@Highcore所說,在這種情況下,您似乎不需要SharedSizeGroup

+1

是的,這是兩個問題的組合。我之前已經嘗試過拉伸對齊,但是在設置了SharedSizeGroup的情況下,它仍然不起作用。謝謝! – NielW