Я подаю Заявку WPF в C#, где я должен показать новейшую историю документов (точно так же, как это происходит в слове, Excel и даже Visual Studio), показывая списку последние 5 или 10 открытых документов. У меня нет абсолютно никакой идеи относительно того, как я должен пойти об этом. Помогите. И быть добрым и нежным... Я - amatuer кодер, и трудно переварить высокотехнологичные переговоры на данный момент!:)
Вы можете просто хранить список документов, которые открывает пользователь. Хранить список при выходе из программы и загружать его при запуске программы. Возможно, вы могли бы хранить список в настройках программы или записывать его в файл (простой текст или xml подойдут).
Вам придется создавать подменю для "последних документов" динамически, сохраняя ссылку на MenuItem
"последних документов", затем добавляя и удаляя MenuItem
ы из его Items
коллекции. Обсуждение этого вопроса можно найти здесь: Add new menuitem to menu at runtime.
Библиотека, ссылку на которую дал Shoban, выглядит как набор классов, которые делают это за вас. Но она предназначена для winforms. Если вы используете wpf, вам, возможно, придется написать свой собственный (хотя, вероятно, где-то есть готовые), но библиотека для winforms даст вам хорошую отправную точку.
Вы также можете создать джамплисты в панели задач win7, используя Windows API Code Pack for .Net.
JumpList в 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>
Gagan, я недавно сделал меню недавних файлов в WPF C# и вот что я сделал:
-> для включения функциональности джамплиста и меню недавних файлов в меню пуск я использовал процедуру оболочки windows API следующим образом:
[DllImport("shell32.dll")] //процедура оболочки для включения джамплиста и recenfiles public static extern void SHAddToRecentDocs( UInt32 uFlags, [MarshalAs(UnmanagedType.LPWStr)] String pv);
и вызываем его следующим образом: SHAddToRecentDocs(0x00000003, mFilePath);
-> Затем для отображения меню последних файлов я использовал xml файл, сохранил последние файлы в нем, разобрал и отобразил последние файлы в меню.