2010-03-08 4 views
10

Я создаю приложение WPF на C#, где мне нужно показать историю последних документов (как это происходит в слове, excel и даже visual studio), показывая список открываются последние 5 или 10 документов. Я не имею ни малейшего понятия о том, как я должен это делать. Пожалуйста помоги. И, пожалуйста, будьте добрыми и нежными ... Я комедиант amatuer, и сейчас сложно переварить высокотехнологичные переговоры! :)Как создать последние документы История в C# в приложении WPF

+0

Вы проверили класс [MRUManager] (http://www.codeproject.com/KB/cs/mru.aspx)? – Shoban

+0

Как я уже сказал .... Я любительский кодер .... пожалуйста, помогите мне понять класс MRUManager и что он делает. Благодарю. – Gagan

+0

Вы проверили статью, связанную с кодировкой, которую я связал? – Shoban

ответ

2

Вы можете просто сохранить список документов, которые пользователь открывает. Сохраните список, когда программа выйдет и загрузится, когда программа запустится. Вероятно, вы могли бы сохранить список вещей в настройках программы или записать его в файл (обычный текст или xml будут работать нормально).

Вы должны были бы создать подменю «последние документы» динамически, сохраняя ссылку на «последние документы» MenuItem, то добавление и удаление MenuItem с от его Items коллекции. Здесь обсуждается это: Add new menuitem to menu at runtime.

Библиотека, которая была связана выше Shoban, выглядит как набор классов, которые делают это за вас. Но это для winforms. Если вы используете wpf, вам, возможно, придется написать свой собственный (хотя есть, вероятно, предварительно созданные там где-то), но winforms один даст вам хорошее стартовое место.

Вы также можете создать jumplists в панели задач win7, используя Windows API Code Pack for .Net.

8

JumpList in WPF4 является удивительным. Это было все, что мне нужно сделать:

<Application 
    x:Class="MyApp" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    <Application.Resources> 
    </Application.Resources> 
    <JumpList.JumpList> 
     <JumpList ShowRecentCategory="True"/> 
    </JumpList.JumpList> 
</Application> 
+0

Что такое JumpList для WinForm? – CallMeLaNN

+0

-1 Это не ответ. Как JumpList связан с MRU? – KMC

+0

@kmc Поскольку JumpList (приведенный код) отображает список самых последних использованных документов, вы webby;) –

1

Gagan, я недавно сделал недавнее меню файла в WPF C#, и вот что я сделал:

->, чтобы включить функцию Jumplist и меню Пуск в последнее время меню файла я использовал Windows API оболочки рутину, как это:

[DllImport ("shell32.dll")] // рутину оболочки для того, чтобы Jumplist и recenfiles общественного статических ехЬегпов недействительного SHAddToRecentDocs ( UInt32 uFlags, [MarshalAs (UnmanagedType.LPWStr)] St кольцо pv);

и называйте это следующим образом: SHAddToRecentDocs (0x00000003, mFilePath);

-> Затем, чтобы отобразить последнее меню файлов, я использовал файл xml, сохранил в нем последние файлы и проанализировал и отобразил последний файл в меню.

1

Вы могли бы быть заинтересованы в Writer приложения на дискретизации WPF Application Framework (WAF). В нем показано, как использовать и внедрить последний список файлов, который отображается в меню файла и на начальной странице.

2

Мое решение этой проблемы (в качестве новичка) состояло в том, чтобы сохранить все пути файлов в очереди заданной максимальной емкости и добавить их во время выполнения в menuItem ...

Смежные вопросы