Я пишу программу WPF на С#, которая должна отображать набор файлов в файловом браузере для конечного пользователя. Элемент управления ExplorerBrowser, найденный внутри Microsoft Windows API CodePack, содержит большую часть необходимых мне функций... например. миниатюры разных размеров, сортировка, просмотр и т. д.
Загвоздка в том, что файлы поступают не с диска, а доступны по специальному сетевому протоколу передачи.
Первоначально я думал, что могу просто расширить класс ShellObjectContainer и классы ShellObject, чтобы предоставить необходимые мне функции, по существу создав адаптер. Однако я столкнулся с трудностями, потому что эти классы используют внутренние конструкторы.
В целом, похоже, что этот API довольно враждебен расширению, есть ли способ расширить эти компоненты, чтобы они делали то, что мне нужно, или мне лучше перестроить большую часть функциональности ExplorerBrowsers, создав собственный компонент WPF, возможно, путем расширения ListBox?