Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужен грид с плавающими строками 
V
    Опции темы
akizelokro
Дата 10.6.2008, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: нет
Всего: 5



Нужен грид с "плавающими" строками. Боюсь, что некорректно обозвался, поэтому поясню. Мне нужно сделать что-то типа грида, в котором на каждой строке свой StackPanel. Когда я делаю, например, первый StackPanel невидимым, остальные автоматически смещаются вверх. И наоборот. Как это возможно реализовать, если это возможно?


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
HalkaR
Дата 10.6.2008, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 5
Всего: 42



Вобщем тебе надо сделать что-то такое. Ты кладешь на форму ListBox. И указываешь у него в качестве ItemTemplate такой DataTemplate. Здесь шаблон - это грид, но ты можешь положить что угодно. Самое главное, что у этого DataTemplate есть Trigger который при условии если поле IsModifier == true  (у объекта соответствующего этой строке ListBox) делает высоту грида равной 0. Ты можешь использовать не высоту, а например Visibility=Collapsed.
Код

            <DataTemplate x:Key="SimpleDataTemplate">
                <Grid Background="Transparent" Height="50" Name="grid">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="45" />
                        <ColumnDefinition Width="5" />
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="1" />
                        <ColumnDefinition Width="100" />
                    </Grid.ColumnDefinitions>
                </Grid>
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding Path=Content.IsModifier, RelativeSource=
                                         {
                                          RelativeSource
                                          Mode=FindAncestor,
                                          AncestorType={x:Type ListBoxItem}
                                         }, Mode=OneWay
                                        }" 
                                        Value="True">
                        <Setter Property="Grid.Height" Value="0" TargetName="grid" />
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate>


Это сообщение отредактировал(а) HalkaR - 10.6.2008, 16:31
PM MAIL   Вверх
Kefir
Дата 10.6.2008, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 22
Всего: 87



akizelokro, ну способов предостаточно. если тебе надо сделать стак панели внутри строк - ставь просто у строк грида высоту Auto. они будут принимать размер контента. и когда ты стак панели поставишь Visibility = Collapsed (то же самое, что и Hidden, только высота и ширина равны 0), то строка грида видит, что высота контента - 0 и прячется:
Код

<Grid>
  <Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="Auto"/>
  </Grid.RowDefinitions>
  <StackPanel HorizontalAlignment="Left" Width="100" Grid.Row="0" Height="100" Background="#FFFFB0B0"/>
  <StackPanel HorizontalAlignment="Left" Width="100" Grid.Row="1" Height="100" Background="#FF72FFDB"/>
  <StackPanel HorizontalAlignment="Left" Width="100" Grid.Row="2" Height="100" Background="#FF9FFF72"/>
</Grid>


Это сообщение отредактировал(а) Kefir - 10.6.2008, 21:12
PM MAIL WWW Skype   Вверх
HalkaR
Дата 10.6.2008, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 5
Всего: 42



Вобщем разница между примером Кефира и моим в подходе, через данные или через контролы.
PM MAIL   Вверх
akizelokro
Дата 13.6.2008, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: нет
Всего: 5



Спасибо, все получилось


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0479 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.