2012-11-24 13 views
2

我有一個自定義列表框,其中每個項目都有一個網格定義在哪裏顯示框。我可以使用SharedSizeGroup屬性將寬度設置爲相同的長度。但是,如何爲父列表框元素中的所有這些項共享此屬性?如何爲WPF網格中的所有元素設置特定的高度/寬度?

我試着在ListBox元素上設置屬性,但是這不起作用。

<ListBox 
    ItemContainerStyle="{StaticResource MyStyle}"...> 

<Style x:Key="MyStyle" TargetType="ListBoxItem"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ListBoxItem"> 
       <Grid Grid.IsSharedSizeScope="True"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="Auto" SharedSizeGroup="Box" /> 
         <ColumnDefinition Width="Auto" SharedSizeGroup="Box" /> 
         <ColumnDefinition Width="Auto" SharedSizeGroup="Box" /> 
        </Grid.ColumnDefinitions> 
        <Border Grid.Column="0"> 
         <TextBlock Text="{Binding PropertyA}" /> 
        </Border> 
        <Border Grid.Column="1"> 
         <TextBlock Text="{Binding PropertyB}" /> 
        </Border> 
        <Border Grid.Column="2"> 
         <TextBlock Text="{Binding PropertyC}" /> 
        </Border> 
       </Grid> 

回答

2

而是在Grid設置屬性Grid.IsSharedSizeScope="True"的,將其放置在列表框這樣的 -

<ListBox Grid.IsSharedSizeScope="True"> 

,並從Grid將其刪除。

這將使alllistboxItemsshare the same size而不是單個項目。

相關問題