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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заполнение TextBox'ом StackPanel, Как растянуть TextBox по ширине StackPan 
V
    Опции темы
Dgedit
Дата 25.6.2011, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем привет, подскажите кто знает.
Есть такой код
Код

<StackPanel orientation=Horizontal Width=600>
     <TextBox Text="Hello">
</StackPanel>

Как сделать так чтобы этот TextBox растягивался по ширине StackPanel?
PM MAIL   Вверх
dextermd
Дата 26.6.2011, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Можно сделать так:
Код

<StackPanel Orientation="Horizontal" Width="600">
    <TextBox Text="Hello" Width="600" />
</StackPanel>


Но тогда зачем нужен StackPanel ? Ведь TextBox займет всю его площадь.

Это сообщение отредактировал(а) dextermd - 26.6.2011, 19:07
PM MAIL   Вверх
exBlender
Дата 27.6.2011, 04:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Dgedit @ 25.6.2011,  09:25)
Как сделать так чтобы этот TextBox растягивался по ширине StackPanel?

Поменять StackPanel на DockPanel.
--------------------
HTML и CSS забыв как страшный сон, хвалу я заммэлу пою и фирме Майкрософт.
PM MAIL   Вверх
Dgedit
Дата 27.6.2011, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

Но тогда зачем нужен StackPanel ? Ведь TextBox займет всю его площадь.

Ну если у меня есть строка в которой 2 TextBox'a, мне нужно чтобы тот который правее занимал всю область до конца окна, чтобы я его мог выровнять по правому краю, а он, собака, ширину делает по содержимому, приходится жестко зашивать размер чтобы он мог быть воравнен по правому краю окна.
PM MAIL   Вверх
Brilona
Дата 27.6.2011, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Возможно удобнее будет использовать Grid:

Код

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <TextBox Text="hello"/>
    <TextBox Grid.Column="1" Text="world" TextAlignment="Right"/>
</Grid>

PM MAIL ICQ   Вверх
exBlender
Дата 27.6.2011, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Или
Код
<DockPanel>
    <TextBox Text="hello"/>
    <TextBox Text="world" TextAlignment="Right"/>
</DockPanel>


Это сообщение отредактировал(а) exBlender - 27.6.2011, 18:26
--------------------
HTML и CSS забыв как страшный сон, хвалу я заммэлу пою и фирме Майкрософт.
PM MAIL   Вверх
ДобренькийПапаша
Дата 27.6.2011, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

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



Зачем что-то выдумывать. Вот так должно быть, по идее smile
Код

<StackPanel orientation=Horizontal Width=600>
     <TextBox Text="Hello" HorizontalAlignment="Stretch">
</StackPanel>



--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
-Mikle-
Дата 28.6.2011, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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



Цитата(ДобренькийПапаша @  27.6.2011,  21:30 Найти цитируемый пост)
Зачем что-то выдумывать. Вот так должно быть, по идее 

Не будет так.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
ДобренькийПапаша
Дата 28.6.2011, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

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



Цитата(-Mikle- @ 28.6.2011,  08:47)
Цитата(ДобренькийПапаша @  27.6.2011,  21:30 Найти цитируемый пост)
Зачем что-то выдумывать. Вот так должно быть, по идее 

Не будет так.

Проверил. Действительно, не будет :(


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
-Mikle-
Дата 28.6.2011, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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



Цитата(ДобренькийПапаша @  28.6.2011,  12:30 Найти цитируемый пост)
Проверил. Действительно, не будет

Причина простая и кроется в архитектуре размещения элементов WPF. Свойства типа HorizontalAlignment обрабатываются контейнерами во время вызова их метода Measure, а не самим элементом. Если контейнер не может учитывать это свойство (по своей логике), то он и не реализует его. StackPanel имеет размер double.PositiveInfinity во время расчета размеров своих детей, поэтому и не учитывает это свойство у них, так как не ограничивает (по своей логике) максимальный размер для любого из своих детей. Другие контейнеры, могут учитывать это свойство и обрабатывать его значение, если это предусмотрено в них.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
jonie
Дата 28.6.2011, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



кстати, -Mikle-,  подскажите норм литру по подобным знаниям (порядок обработки и вычисления размеров) ?


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
-Mikle-
Дата 28.6.2011, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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



К сожалению, я практически не читаю книжек, поэтому у меня нет коллекции подобного рода ссылок. Так уж вышло у меня, что я хорошо приспособился изучать все логическим + практическим путем, ну то есть большинство пониманий и знаний мне дается само по себе по мере накопления практики, а не из какого-нибудь прочитанного материала. В интернет за помощью, конечно, тоже обращаюсь, когда очень долго не могу с чем-то разобраться. В основном на МСДН нахожу почти все, что мне нужно. Единственное, чем могу помочь, это как-нибудь вечерком погуглить и поискать что-то хорошее на мой личный взгляд, если вам нужно конечно.

О последовательности вызовов, на мой взгляд достаточно, написано в МСДН: Layout System


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Dgedit
Дата 28.6.2011, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Думаю лучшим вариантом будет использование DockPanel, всем спасибо за помощь.
PM MAIL   Вверх
hexzo
Дата 18.8.2011, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Почти такая же проблема. Список вылазит за пределы панели по вертикали. Причём по горизонтали всё растягивается нормально.
Пока придумал только Grid с колонками использовать вместо StackPanel-и, за него ничего никуда не вылазит.
Как приручить эту StackPanel?
Код

<StackPanel  Margin="0,0,0,275" x:Name="stackpanel1" Width="114">
            <ListView>
                <ListViewItem>z</ListViewItem>
                <ListViewItem>z</ListViewItem>
                <ListViewItem>z</ListViewItem>
                <ListViewItem>z</ListViewItem>                  
            </ListView>            
        </StackPanel>

PM MAIL   Вверх
exBlender
Дата 18.8.2011, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(hexzo @ 18.8.2011,  04:00)
Как приручить эту StackPanel?

Она и так ручная, если Margin'ами не мучить.
--------------------
HTML и CSS забыв как страшный сон, хвалу я заммэлу пою и фирме Майкрософт.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




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


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

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