Я пытаюсь реализовать пользовательский элемент управления.«Двумерный» UserControl
Рассмотрим ViewModels:
public class FileViewModel
{
public string Name { get; set; }
public BitmapSource Thumbnail { get; set; }
}
public class DirectoryViewModel
{
public string Name { get; set; }
public ObservableCollection<FileViewModel> Files { get; private set; }
public FileViewModel SelectedFile { get; set; }
}
Я хочу иметь UserControl, которые показывают такие ViewModels in this way (two ways):
1) Двумерный список типа управления.
2) Двухмерное покрытие-подобный контроль.
Обратите внимание, что каждый файл имеет миниатюру, и каждый каталог запоминает файл с последним просмотром. Директория должна отображать миниатюру последнего просмотра (как ее собственную), если каталог не выбран.
Выбор каталогов изменяется с помощью клавиш влево-вправо и соответствующих кнопок. Выбор файлов изменяется с помощью клавиш со стрелками вверх и соответствующих кнопок.
Кто-нибудь реализовал какой-то двумерный UserControl, как это?
С уважением, Серж.
Рэйчел, спасибо большое за ответ. Не могли бы вы предоставить исходный код первого способа (вы описали)? –
@Serge У меня нет исходного кода, хотя, по-моему, это будет что-то вроде 'ItemsControl' внутри' ScrollViewer' и некоторого кода для обеспечения того, чтобы 'SelectedItem' всегда был центрирован в' ScrollViewer' – Rachel