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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выровнять button внутри ListBox 
V
    Опции темы
RastaDja
Дата 31.8.2011, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Доброго времени суток уважаемые!
Есть разметка 
Код

<ListBox BorderThickness="1" Grid.Row="0" Name="ResList">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition />
                            <ColumnDefinition Width="Auto"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Column="0" Text="{Binding Path=v}"></TextBlock>
                        <Button Grid.Column="2" HorizontalAlignment="Right" Click="Button_Click" Tag="{Binding}" Content="View ..."></Button>
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

хочу нарисовать вот такой ListBox
user posted image
а получаю вот такое
user posted image

как мне описать стиль, чтоб кнопка всегда была справа. Помогите, ато уже всю голову сломал, и ничего не выходит  smile 


--------------------
The more closely you look at one thing, the less closely can you see something else.
PM MAIL   Вверх
Gvozdin
Дата 31.8.2011, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 9.8.2011
Где: Москва

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



Тут проблема в том что ListBoxItem занимает не всю щирину.

Сделайте ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled" - запретите виртуальное бесконечно пространство по горизонтали.
И задайте стиль для ListBoxItem:

Код

<ListBox.ItemContainerStyle>
    <Style>
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
    </Style>
</ListBox.ItemContainerStyle>


Пишу по памяти, могут быть неточности.
--------------------
http://gvozdin.ru
PM MAIL WWW   Вверх
RastaDja
Дата 31.8.2011, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Gvozdin, написал такое
Код

<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled" BorderThickness="1" Grid.Row="0" Name="ResList" IsSynchronizedWithCurrentItem="True">
            <ListBox.ItemTemplate>
               <DataTemplate>
                    <Grid HorizontalAlignment="Stretch">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition />
                            <ColumnDefinition Width="Auto"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Column="0" Text="{Binding Path=v}"></TextBlock>
                        <Button Grid.Column="2" HorizontalAlignment="Right" Click="Button_Click" Tag="{Binding}" Content="View ..."></Button>
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
            <ListBox.ItemContainerStyle>
                <Style>
                    <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                </Style>
            </ListBox.ItemContainerStyle>
        </ListBox>

ругается на <Setter Property="HorizontalContentAlignment" Value="Stretch"/> :
error MC4003: Cannot resolve the Style Property 'HorizontalContentAlignment'. Verify that the owning type is the Style's TargetType, or use Class.Property syntax to specify the Property. Line 48 Position 29.
как правильно сделать, подскажите пожалуйста.

Добавлено через 5 минут и 42 секунды
так
Код

<ListBoxItem HorizontalContentAlignment="Stretch"></ListBoxItem>
тоже не работает


--------------------
The more closely you look at one thing, the less closely can you see something else.
PM MAIL   Вверх
Rogik
Дата 31.8.2011, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Veni vidi vici



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

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



Необходимо для ListBox задать свойство HorizontalContentAlignment="Stretch", а не для ListBoxItem
Код

  <ListBox BorderThickness="1" Grid.Row="0" Name="ResList" HorizontalContentAlignment="Stretch">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition />
                            <ColumnDefinition Width="Auto"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Column="0" Text="{Binding Path=v}"></TextBlock>
                        <Button Grid.Column="2" HorizontalAlignment="Right" Click="Button_Click" Tag="{Binding}" Content="View ..."></Button>
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>



Это сообщение отредактировал(а) Rogik - 31.8.2011, 19:27
PM MAIL ICQ   Вверх
RastaDja
Дата 1.9.2011, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Rogik
Gvozdin, спасибо большое. Заработало.


--------------------
The more closely you look at one thing, the less closely can you see something else.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




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


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

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