添加新控件并调整容器大小以适应相应的要求

时间:2015-05-13 00:20:43

标签: c# wpf image

我正在为学校制作一个二十一点游戏,我需要一个容器,它将包含图像控件。

我希望有一个容器,在其中创建Image控件(通过代码)来容纳玩家已经击中的牌的图像。使用单层卡时,最多可以使用9张卡,就像我一样。

关于我的问题: 创建每个图像控件的最简单/影响最小的方法是什么,以便所有控件的中心与我的“手”图像控件的中心对齐?

以下是我的意思的快速说明:

Example

所以基本上: 如果卡的数量不均匀(1,3,5,7或9),则中间卡的中心位于手的中心位置。

如果牌数是偶数(2,4,6或8),则两张中牌之间的空间位于牌的中心位置。

1 个答案:

答案 0 :(得分:0)

我会做这样的事情,在适当时用图像替换矩形:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <StackPanel Grid.Row="0"
            HorizontalAlignment="Center"
            Orientation="Horizontal">
        <Rectangle Width="100"
                Height="100"
                Fill="Blue" />
        <Rectangle Width="100"
                Height="100"
                Fill="Green" />
        <Rectangle Width="100"
                Height="100"
                Fill="Blue" />
        <Rectangle Width="100"
                Height="100"
                Fill="Green" />
        <Rectangle Width="100"
                Height="100"
                Fill="Blue" />
        <Rectangle Width="100"
                Height="100"
                Fill="Green" />
        <Rectangle Width="100"
                Height="100"
                Fill="Blue" />
    </StackPanel>
    <StackPanel Grid.Row="1"
                    HorizontalAlignment="Center"
                    Orientation="Horizontal">
            <Rectangle Width="100"
                       Height="100"
                       Fill="Red" />
            <Rectangle Width="100"
                       Height="100"
                       Fill="Black" />
    </StackPanel>
</Grid>

我手动填充了StackPanels,通常你将其ItemsSource属性绑定到ObservableCollection(s)。