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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перевод строки в ListBox, как сделать 
V
    Опции темы
AlexLogos
Дата 10.11.2011, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Народ, не пинайте сильно  smile . Пишу строку в ListBox.Add(str), хочу чтоб строка str отображалась внесколько строк, поэтому вставляю в нее перевод строки Environment.NewLine, а оно не работает... Получаю квадратики. Что делать?
PM MAIL   Вверх
Brilona
Дата 11.11.2011, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Убрать из str перевод строки Environment.NewLine и подправить шаблон для ListBoxItem, чтобы каждый элемент отображался как TextBlock с переносом строк (название свойства точно не скажу, но что-то типа TextWraping).
PM MAIL ICQ   Вверх
RastaDja
Дата 11.11.2011, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(AlexLogos @  11.11.2011,  00:48 Найти цитируемый пост)
хочу чтоб строка str отображалась внесколько строк

Если это WPF тогда можно переопределить шаблон ListBox-а. Если WinForm, тогда создать свой унаследованый класс от ListBox. Пример есть вот тут.


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


Бывалый
*


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

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



А как преопределить шаблон ListBox-а?
PM MAIL   Вверх
Lols
Дата 12.11.2011, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(AlexLogos @ 12.11.2011,  00:36)
А как преопределить шаблон ListBox-а?

Вопрос тот же :(
http://msdn.microsoft.com/ru-ru/library/sy...x(v=vs.95).aspx
здесь искала, но что-то не совсем поняла.
PM MAIL   Вверх
RastaDja
Дата 14.11.2011, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(AlexLogos @  12.11.2011,  01:36 Найти цитируемый пост)
А как преопределить шаблон ListBox-а?

В действительности, если быть точнее, то шаблон ListBoxItem-а
Код

<Window x:Class="ListBox.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <!-- Вот это шаблон -->
        <DataTemplate x:Key="MyTmpl">
            <Border Name="border" BorderThickness="1" Padding="5" Margin="0">
                <Grid>
                    <TextBlock TextWrapping="Wrap" Text="{Binding Text}"/>
                </Grid>
            </Border>
        </DataTemplate>
    </Window.Resources>
    <Grid>
        <!-- ItemTemplate="{StaticResource MyTmpl}" это подключение шаблона к листбоксу, параметры HorizontalContentAlignment и ScrollViewer.HorizontalScrollBarVisibility обязательны -->
        <ListBox Name="listBox1" ItemTemplate="{StaticResource MyTmpl}" HorizontalContentAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Disabled"/>
    </Grid>
</Window>

Код

//...
namespace ListBox
{
    public class Sample
    {
        public String Text { get; set; }
    }

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            listBox1.Items.Add(new Sample() { Text = "this is long-long-long-long-long-long-long-long-long-long-long-long text" });
            listBox1.Items.Add(new Sample() { Text = "this is long-long-long-long-long-long-long-long-long-long-long-long text" });
            listBox1.Items.Add(new Sample() { Text = "this is long-long-long-long-long-long-long-long-long-long-long-long text" });
        }
    }
}



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


Бывалый
*


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

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



Ладно, спрошу еще раз. Товарисчи, я програмирую в C# второй день, как переопределить шаблон ListBox-а? Где находится вот эта штука?
Код

<Window x:Class="ListBox.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <!-- Вот это шаблон -->
        <DataTemplate x:Key="MyTmpl">
            <Border Name="border" BorderThickness="1" Padding="5" Margin="0">
                <Grid>
                    <TextBlock TextWrapping="Wrap" Text="{Binding Text}"/>
                </Grid>
            </Border>
        </DataTemplate>
    </Window.Resources>
    <Grid>
        <!-- ItemTemplate="{StaticResource MyTmpl}" это подключение шаблона к листбоксу, параметры HorizontalContentAlignment и ScrollViewer.HorizontalScrollBarVisibility обязательны -->
        <ListBox Name="listBox1" ItemTemplate="{StaticResource MyTmpl}" HorizontalContentAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Disabled"/>
    </Grid>
</Window>

Как ее найти? как должен выглядеть StaticResource MyTmpl и где он храниться?
PM MAIL   Вверх
RastaDja
Дата 15.11.2011, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(AlexLogos @  15.11.2011,  13:21 Найти цитируемый пост)
Ладно, спрошу еще раз. Товарисчи, я програмирую в C# второй день, как переопределить шаблон ListBox-а? 

тогда тибе надо почитать о WPF для начала. А конкретнее о шаблонах в WPF.

Цитата(AlexLogos @  15.11.2011,  13:21 Найти цитируемый пост)
Где находится вот эта штука?

Эта "штука" находится в файле MainWindow.xaml
Цитата(AlexLogos @  15.11.2011,  13:21 Найти цитируемый пост)
Как ее найти?

в Solution explorer. (если канешно у тебя не Win Forms проект)

Цитата(AlexLogos @  15.11.2011,  13:21 Найти цитируемый пост)
как должен выглядеть StaticResource MyTmpl и где он храниться? 

он хранится в том же файлике MainWindow.xaml, и начинается с <DataTemplate x:Key="MyTmpl">



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


Бывалый
*


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

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



Мдя... А у меня как раз Win Forms. В этом случае как решить?
PM MAIL   Вверх
RastaDja
Дата 16.11.2011, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



создать WPFProject. А если без WinForm никак, тогда перейдите по ссылке в моем первом посте.


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


Бывалый
*


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

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



Спасибо, буду разбираться...
PM MAIL   Вверх
AlexLogos
Дата 8.12.2011, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(RastaDja @ 11.11.2011,  09:45)
Цитата(AlexLogos @  11.11.2011,  00:48 Найти цитируемый пост)
хочу чтоб строка str отображалась внесколько строк

Если это WPF тогда можно переопределить шаблон ListBox-а. Если WinForm, тогда создать свой унаследованый класс от ListBox. Пример есть вот тут.

Спасибо RastaDja, разобрался ка подключить этот компонент
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




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


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

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