控件之间的间距相等

时间:2016-07-27 10:04:54

标签: c# wpf xaml

我想将图像和文字放在图像下面,如下所示。行的高度必须平均分配。如果我希望图像相应地调整大小,这怎么可能呢?

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="9*"/>
            <ColumnDefinition Width="10*"/>
            <ColumnDefinition Width="10*"/>
            <ColumnDefinition Width="20*"/>
            <ColumnDefinition Width="10*"/>
            <ColumnDefinition Width="40*"/>
            <ColumnDefinition Width="10*"/>
            <ColumnDefinition Width="10*"/>
            <ColumnDefinition Width="10*"/>
            <ColumnDefinition Width="10*"/>
            <ColumnDefinition Width="10*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="10*" />
            <RowDefinition Height="10*" />
            <RowDefinition Height="10*" />
            <RowDefinition Height="10*" />
            <RowDefinition Height="10*" />
            <RowDefinition Height="10*" />
            <RowDefinition Height="10*" />
            <RowDefinition Height="10*" />
            <RowDefinition Height="10*" />
            <RowDefinition Height="10*" />
        </Grid.RowDefinitions>

            <Image Grid.Column="1" Grid.Row="0" Source="pack://application:,,,/WpfApplication5;component/led.green.off.png" HorizontalAlignment="Center">
            </Image>
            <TextBlock Grid.Column="1" Grid.Row="1" Text="Turret Power" ></TextBlock>

            <Image Grid.Column="1" Grid.Row="2" Source="pack://application:,,,/WpfApplication5;component/toggle.sheath.DOWN.png" HorizontalAlignment="Center">
            </Image>
            <TextBlock Grid.Column="1" Grid.Row="3" Text="Off" ></TextBlock>

            <Image Grid.Column="1" Grid.Row="4" Source="pack://application:,,,/WpfApplication5;component/toggle.sheath.DOWN.png" HorizontalAlignment="Center">
            </Image>
            <TextBlock Grid.Column="1" Grid.Row="5" Text="Off" ></TextBlock>
            <Image Grid.Column="1" Grid.Row="6" Source="pack://application:,,,/WpfApplication5;component/toggle.sheath.DOWN.png" HorizontalAlignment="Center">
            </Image>
            <TextBlock Grid.Column="1" Grid.Row="7" Text="Off" ></TextBlock>
            <Image Grid.Column="1" Grid.Row="8" Source="pack://application:,,,/WpfApplication5;component/toggle.sheath.DOWN.png" HorizontalAlignment="Center">
            </Image>
            <TextBlock Grid.Column="1" Grid.Row="9" Text="Off" ></TextBlock>
            <Image Grid.Column="1" Grid.Row="10" Source="pack://application:,,,/WpfApplication5;component/toggle.sheath.DOWN.png" HorizontalAlignment="Center">
            </Image>
            <TextBlock Grid.Column="1" Grid.Row="11" Text="Off" ></TextBlock>
    </Grid>

如果我执行上述操作,图像很大并且会越过窗口

1 个答案:

答案 0 :(得分:1)

  • <RowDefinition>中的<Grid.RowDefinitions>遗漏了Grid.Row(根据Height的用法
  • 如果行/列定义完全相同,则不必在权重中添加权重,如果值为*,则甚至不必设置Height="10*",因为这是默认设置(您可以从每个<RowDefinition>删除Width="Auto"
  • 也许您希望将某些列定义设置为IF [Type of Dimension] = 'Finance' THEN [Profit] ELSE NULL END ,但我会留给您。