Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Контрол для свободного ячеистого размещения элементов и перемещения по ним? / 21 сообщений из 21, страница 1 из 1
20.03.2011, 21:33
    #37174497
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
Думаю, на базе чего можно , создать контрол, который поддерживает itemssource , визуально отображает элементы ячейками(подобие excel), и позволяет перемещаться по ним курсором - влево,вправо,вниз,вверх.

я ищу для silverlight.

попробовал уже listbox с шаблоном панеле из wrappanel ,но не то. там зазор, и двигается только слева направо.
кто посоветует что?
...
Рейтинг: 0 / 0
20.03.2011, 21:45
    #37174513
.ЛП
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
Грид ещё не предлагали?
...
Рейтинг: 0 / 0
20.03.2011, 21:52
    #37174519
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
ну, а как в гриде? там что есть поддержка itemssource?
это нужно,чтобы я коллекцию забиндить смог, и каждый элемент коллекции отобразился через шаблон.
...
Рейтинг: 0 / 0
21.03.2011, 05:51
    #37174638
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
DataGrid?
...
Рейтинг: 0 / 0
21.03.2011, 09:18
    #37174711
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
да можно.
а что нито вообще простое может есть?
потому что у меня данные в видел списка,1 колонка и много строк. а хочется чтобы эта лента, размещалась по логике wrap panel.
...
Рейтинг: 0 / 0
21.03.2011, 13:09
    #37175234
Руки-крюки
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
AlexeiK,

ItemControl + WrapPanel?

Если какие-то зазоры появятся то уберите их минусовым Padding'ом или Margin'ом.
...
Рейтинг: 0 / 0
21.03.2011, 13:12
    #37175241
Руки-крюки
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
AlexeiK,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        <ItemsControl ItemsSource="{Binding Path=List}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    
                </DataTemplate>
            </ItemsControl.ItemTemplate>
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel>
                        
                    </WrapPanel>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
        </ItemsControl>
...
Рейтинг: 0 / 0
21.03.2011, 13:26
    #37175277
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
Руки-крюки, 5 баллов.
Благодарю.
...
Рейтинг: 0 / 0
21.03.2011, 13:28
    #37175284
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
а есть сразу еще вопрос.
а как реализовать фокус на элементах ?
...
Рейтинг: 0 / 0
23.03.2011, 00:26
    #37178394
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
про фокус с itemcontrol может подскажет кто нибудь?
а то чето не догоняю. не уж то придется код писать для фокуса с клавиатуры?
...
Рейтинг: 0 / 0
23.03.2011, 00:49
    #37178410
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
Не знаю поможет ли...
Тут смысл такой в строке
Код: plaintext
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
Отключается эта еб*ная синяя подсветка при выделении итема, а
Код: plaintext
<Setter TargetName="Border" Property="Effect">
делает то что надо

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
        <Style x:Key="SimpleListBoxItem" TargetType="ListBoxItem">
            <Setter Property="FocusVisualStyle" Value="{x:Null}" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ListBoxItem">
                        <Border 
                           Name="Border"
                           Padding="2"
                           SnapsToDevicePixels="true">
                            <ContentPresenter />
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsSelected" Value="true">
                                <!--<Setter TargetName="Border" Property="Background" Value="{x:Null}"/>-->
                                <Setter TargetName="Border" Property="Effect">
                                    <Setter.Value>
                                        <DropShadowEffect />
                                    </Setter.Value>
                                </Setter>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
...
Рейтинг: 0 / 0
23.03.2011, 09:45
    #37178586
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
а если так скажем, у меня не listbox, а itemscontrol ?
с листбоксом я понимаю, как это сделать. а вот как на голый itemscontrol это надеть?
...
Рейтинг: 0 / 0
25.03.2011, 16:57
    #37182926
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
народ , может ктото подскажет, как сделать навигацию в listbox контроле или itemscontrol контроле?
чтобы использовать клавиши курсора для навигации во всех четырех направлениях.
...
Рейтинг: 0 / 0
28.03.2011, 11:32
    #37185384
Руки-крюки
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
AlexeiKнарод , может ктото подскажет, как сделать навигацию в listbox контроле или itemscontrol контроле?
чтобы использовать клавиши курсора для навигации во всех четырех направлениях.

Попробуйте отлавливать нажатие клавиш и вручную перемещать фокус. Как выбрать контрол для фокуса не знаю, тут надо думать. Если не получится нормальным образом, то можно определять координаты контролов относительно панели и по координатам выбирать.

Координаты вычисляются примерно так:

Код: plaintext
Point position = control.TransformToVisual(panel).Transform(new Point());
...
Рейтинг: 0 / 0
02.05.2011, 11:30
    #37242381
Calabonga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
AlexeiK,

авторнарод , может ктото подскажет, как сделать навигацию в listbox контроле или itemscontrol контроле?
чтобы использовать клавиши курсора для навигации во всех четырех направлениях.

ItemsControl не умеет ничего про фокус дочерних элементов. Придется реализовавыть "вручную". При это каждая подставляемая Item должна иметь своймтво IsSelected и т.д. Я писал себе контрол с подобным функционалом. Он просто двигает влево и вправо свои дочерние элементы. А элементы могут выбираться... На картинке во вложении видно.
...
Рейтинг: 0 / 0
02.05.2011, 11:32
    #37242382
Calabonga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
Картинку с демо проекта своей библиотеки контролов забыл прилепить.
...
Рейтинг: 0 / 0
02.05.2011, 14:09
    #37242494
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
Кстати, я нашел выход.
Это управление фокусом, через источник данных лежащий под коллекцией. то есть делаем конвертер на свойство Fill (оно выделяет визуально) и собственно, если 1 то fill=красный, если ноль, то пусть.
написать еще переводчик из одной системы координат в другую и норм.
...
Рейтинг: 0 / 0
02.05.2011, 14:34
    #37242518
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
AlexeiK,

как реализуете не забудьте поделиться, сообщество будет благодарно :)
...
Рейтинг: 0 / 0
02.05.2011, 15:54
    #37242571
i
i
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
Я бы это делал с помощью datagrid
...
Рейтинг: 0 / 0
02.05.2011, 16:45
    #37242608
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
i,

DataGrid тяжелый и несет много не нужного функционала :)
...
Рейтинг: 0 / 0
05.05.2011, 11:22
    #37246851
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Контрол для свободного ячеистого размещения элементов и перемещения по ним?
короче все сделано следующим образом:
1.создан класс для хранения данных тип list (of MyClass)
2.он реализует INotifyPropertyChanged
3.в классе есть одно свойство : Current, тип boolean.

в datatemplate делаем некую визуализацию ,которая будет визуально показывать ,что объект текущий и выделен. у меня это прямоугольник с заливкой.
в datatemplate делаем связку свойства fill прямоугольника со свойством Current , через конвертер,так чтобы при 1 заливаем красным, при 0 заливаем черным.
красный означает выделено.

дальше на keydown листбокса, сажаем код,который при нажатии нужной клавиши, активирует свойство Current у нужного элемента коллекции :
Items(0).Current=1
индекс элемента подсчитывается по нужному вам алгоритму.
у меня это квадрат.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Контрол для свободного ячеистого размещения элементов и перемещения по ним? / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]