2015-05-13 2 views
0

Я работаю над игрой в блэкджек для школы, и мне нужен контейнер, в котором будут находиться элементы управления изображением.Добавить новый элемент управления и изменить размер контейнера соответственно

Я хочу иметь контейнер, в котором будут созданы средства управления изображением (через код) для размещения изображений для карт, которые игрок ударил. Это может быть до 9 карт при работе с одной колодой, как и я.

Что касается моего вопроса: Что было бы самым легким/наименьшим способом создания каждого элемента управления изображениями, чтобы центр на всех элементах управления был выровнен с центром моего «ручного» управления изображениями?

Вот краткий пример того, что я имею в виду:

Example

Так в основном: Если количество карт неровная (1,3,5,7 или 9), центр по центру карта центрирована над рукой.

Если количество карт равно (2,4,6 или 8), пространство между двумя средними картами находится над ручкой.

+0

Что происходит в случае, когда имеется только 1 карта? Соответствует ли он горизонтальному центру в нижнем ряду? – goobering

+0

@goobering Я еще ничего не пробовал, я все еще не уверен, какой тип контроля я должен использовать в качестве контейнера (мышление Grid), который является частью моего вопроса. – Yorrick

+0

Тип управления изменяется в зависимости от этого условия - что бы вы хотели использовать? – goobering

ответ

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 (ов).

Смежные вопросы