2010-03-08 6 views
10

Sto creando un'applicazione WPF in C# in cui ho bisogno di mostrare la cronologia dei documenti recenti (proprio come accade in Word, Excel e anche in Visual Studio), mostrando l'elenco ultimi 5 o 10 documenti aperti. Non ho assolutamente idea di come dovrei farlo. Per favore aiuto. E per favore sii gentile e gentile ... Sono un programmatore amatoriale, ed è difficile digerire discorsi high-tech fin d'ora! :)Come creare la cronologia dei documenti recenti in C# nell'applicazione WPF

+0

Avete controllato la classe [MRUManager] (http://www.codeproject.com/KB/cs/mru.aspx)? – Shoban

+0

Come ho detto ... Sono un codificatore amatoriale .... per favore aiutami a capire la classe MRUManager e cosa fa. Grazie. – Gagan

+0

Hai controllato l'articolo codeproject che ho collegato? – Shoban

risposta

2

Si potrebbe semplicemente mantenere un elenco dei documenti che l'utente apre. Memorizza l'elenco quando il programma si chiude e lo carica all'avvio del programma. Probabilmente potresti memorizzare un elenco di cose nelle impostazioni del programma, o potresti scriverlo in un file (testo normale o xml funzionerebbe bene).

Avresti per creare il sottomenu per "documenti recenti" in modo dinamico, mantenendo un riferimento ai "documenti recenti" MenuItem, quindi l'aggiunta e la rimozione di MenuItem s della sua collezione Items. C'è una discussione al riguardo qui: Add new menuitem to menu at runtime.

La libreria collegata in precedenza da Shoban si presenta come un insieme di classi che fanno questo per voi. Ma è per le winforms. Se stai usando wpf, potresti dover scrivere il tuo (anche se probabilmente ci sono quelli pre-creati là fuori da qualche parte), ma quello di winforms ti darà un buon punto di partenza.

È anche possibile creare jumplists nella barra delle applicazioni di win7 utilizzando Windows API Code Pack for .Net.

8

JumpList in WPF4 è fantastico. Questo era tutto quello che dovevo fare:

<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

Cosa sono JumpList per WinForm? – CallMeLaNN

+0

-1 Questa non è una risposta. In che modo JumpList è correlato a MRU? – KMC

+0

@kmc Poiché JumpList (il codice visualizzato) mostra un elenco di documenti utilizzati più di recente, we webby;) –

1

Gagan, ho recentemente fatto un menù file recenti in WPF C# e qui è quello che ho fatto:

-> per attivare la funzionalità jumplist e il menu recente iniziare menù file ho usato l'API di Windows shell di routine in questo modo:

[DllImport ("shell32.dll")] // guscio di routine per consentire jumplist e recenfiles statiche esternato SHAddToRecentDocs public void ( UInt32 uFlags, [MarshalAs (UnmanagedType.LPWStr)] St anello pv);

e chiamarlo in questo modo: SHAddToRecentDocs (0x00000003, mFilePath);

-> Quindi per visualizzare il menu file recente ho utilizzato un file xml, i file recenti sono stati memorizzati e ho analizzato e visualizzato il file recente nel menu.

1

si potrebbe essere interessato al Writer applicazione campione della WPF Application Framework (WAF). Mostra come utilizzare e implementare un elenco di file recenti che viene mostrato nel menu file e nella pagina iniziale.

2

La mia idea di risolvere questo problema (come principiante) era quella di conservare tutti i percorsi dei file in una coda con la massima capacità e di aggiungerli in fase di esecuzione in un menu ...

Problemi correlati