2010-03-08 27 views
10

Estoy haciendo una aplicación WPF en C# donde necesito mostrar el historial reciente de documentos (como ocurre en Word, Excel e incluso Visual Studio), mostrando la lista se abrieron los últimos 5 o 10 documentos. No tengo ni idea de cómo debería hacerlo. Por favor ayuda. Y sean amables y gentiles ... ¡Soy un codificador original, y es difícil digerir conversaciones de alta tecnología a partir de ahora! :)Cómo crear el historial de documentos recientes en C# en la aplicación WPF

+0

¿Marcó la clase [MRUManager] (http://www.codeproject.com/KB/cs/mru.aspx)? – Shoban

+0

Como dije .... Soy un codificador aficionado ... por favor ayúdenme a entender la clase MRUManager y lo que hace. Gracias. – Gagan

+0

¿Revisaste el artículo del proyecto de código I vinculado? – Shoban

Respuesta

2

Puede mantener una lista de los documentos que abre el usuario. Almacene la lista cuando el programa salga y cárguela cuando se inicie el programa. Probablemente podría almacenar una lista de cosas en la configuración del programa, o podría escribirla en un archivo (el texto sin formato o xml funcionaría bien).

Habría que crear el submenú de "documentos recientes" dinámicamente manteniendo una referencia a los "documentos recientes" MenuItem, a continuación, añadir y eliminar MenuItem s de su colección Items. Hay una discusión al respecto aquí: Add new menuitem to menu at runtime.

La biblioteca que se relacionó anteriormente por Shoban parece un conjunto de clases que hacen esto por usted. Pero, es para winforms. Si está usando wpf, es posible que tenga que escribir el suyo (aunque probablemente haya algunos prefabricados en alguna parte), pero el formulario de winforms le dará un buen punto de partida.

También puede crear listas de salto en la barra de tareas de win7 usando Windows API Code Pack for .Net.

8

JumpList in WPF4 es increíble. Esto era todo lo que tenía que hacer:

<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

¿Qué son JumpList para WinForm? – CallMeLaNN

+0

-1 Esta no es una respuesta. ¿Cómo se relaciona JumpList con MRU? – KMC

+0

@kmc Porque JumpList (el código mostrado) muestra una lista de los documentos usados ​​más recientes, usted webby;) –

1

Gagan, he hecho recientemente un menú de archivos recientes en WPF C# y aquí es lo que hice:

-> para habilitar la funcionalidad jumplist y menú de inicio reciente menú archivo que he utilizado la rutina shell de windows API como esto:

[DllImport ("shell32.dll")] // rutina de cáscara para permitir jumplist y recenfiles SHAddToRecentDocs vacío extern estáticos públicos ( UInt32 uFlags, [MarshalAs (UnmanagedType.LPWStr)] St anillo pv);

y llámalo así: SHAddToRecentDocs (0x00000003, mFilePath);

-> A continuación, para mostrar el menú de archivo reciente utilicé un archivo xml, almacené los archivos recientes en ese archivo y lo analicé y lo visualicé en el menú.

1

Quizás se encuentre interesado en el escritor aplicación muestra de la WPF Application Framework (WAF). Muestra cómo usar e implementar una lista de archivos reciente que se muestra en el menú de archivo y en la página de inicio.

2

Mi idea de resolver este problema (como un principiante) era mantener todas las rutas de archivos en una cola de la capacidad máxima dada y agregarlas en tiempo de ejecución en un elemento de menú ...

Cuestiones relacionadas