2009-09-27 30 views
9

Satırları belirli bir sütunda birleştirmenin bir yolu var mı? Dolayısıyla (Şu anda bir kontrol yani Görüntü rowspan kullanıyorum ama daha iyi bir yolu var mı?) Böyle bir şey almak için bana böyle bir şey verir, bu kodu temeldeWPF: Satırlar bir sütun içinde nasıl birleştirilir (rowspan'a alternatif olarak)?

<Grid.RowDefinitions> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="28" /> 
     <RowDefinition Height="28" /> 
     <RowDefinition Height="28" /> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="28" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="124" /> 
     <ColumnDefinition Width="246*" /> 
    </Grid.ColumnDefinitions> 

kullanıyorum

-------------------- 
    |   |--------| 
    |   |--------| 
    |   |--------| 
    |   |--------| 
    |   |--------| 
    -------------------- 

Bu Şimdi

-------------------- 
    |---------|--------| 
    |---------|--------| 
    |---------|--------| 
    |---------|--------| 
    |---------|--------| 
    -------------------- 

i RowSpan kullanabileceği bir görüntü yerleştirmek istiyorsanız, ben mesela bu sorunun üstesinden gelebilirsiniz (satırlar da sütunda 0 görünür fark), ama w bir sütun tasarlamak değil mümkündür satır ve diğer sütunlar satır içermiyor mu?

cevap

11

Bu, Grid denetimi ile mümkün değildir. Satırlar tüm sütunlardan geçer ve sütunlar tüm satırlardan geçer. Bulduğunuz gibi, RowSpan ve ColumnSpan, sırasıyla bir denetim açıklığı birden çok satır veya sütun oluşturmanıza olanak tanır.

Bir diğer potansiyel geçici çözüm birbirinin içinde birden Grid barındırmak için geçerli:

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 

    <Image/> 

    <Grid Grid.Column="1"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*"/> 
      <RowDefinition Height="*"/> 
      <RowDefinition Height="*"/> 
      <RowDefinition Height="*"/> 
      <RowDefinition Height="*"/> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 
    </Grid> 
</Grid> 
+0

Teşekkürler kent, ama ekstra kod bloat buna değmez galiba? .. Gridimi kullanmaya devam etmek ve sadece RowSpan kullanabilmek için daha iyi olduğunu düşünüyorum. –

+0

@Mark: Evet, açıklamanızla yargılamak istiyorum 'RowSpan' hedefinize ulaşmanın en kolay yoludur. –

1

Nasıl böyle bir şey hakkında: 6 satırları birleştirmek için dikdörtgen kullanmalarını

  <StackPanel Orientation="Horizontal"> 
       <Grid Height="100" Width="50"></Grid> 
       <Grid> 
        <Grid.RowDefinitions> 
         <RowDefinition Height="*" /> 
         <RowDefinition Height="*" /> 
         <RowDefinition Height="*" /> 
         <RowDefinition Height="*" /> 
         <RowDefinition Height="*" /> 
        </Grid.RowDefinitions> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="150" /> 
        </Grid.ColumnDefinitions> 
       </Grid> 
      </StackPanel> 
0

denemede.

<Grid> 
<Grid.RowDefinitions> 
    <RowDefinition Height="*" /> 
    <RowDefinition Height="28" /> 
    <RowDefinition Height="28" /> 
    <RowDefinition Height="28" /> 
    <RowDefinition Height="*" /> 
    <RowDefinition Height="28" /> 
</Grid.RowDefinitions> 
<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="124" /> 
    <ColumnDefinition Width="246*" /> 
</Grid.ColumnDefinitions> 
<Rectangle Grid.RowSpan="6"/> 
</Grid> 
İlgili konular