2010-11-24 19 views
5

veo la mayoría de los ejemplos cinta de WPF por ahí usan algún código comoRibbonCommand no se encontró

xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary" 

que estoy recibiendo este error ... "El tipo 'r: RibbonCommand' era no encontrado. Verifique que no le falta una referencia de ensamblado y que todos los ensamblados a los que se hace referencia han sido creados ".

Uso de VS 2010, .NET 4.0.

Estoy tratando de averiguar cómo agregar un botón a la cinta y ejecutar código/comando cuando se hace clic.

Gracias.

+0

También obteniendo RibbonGroupSizeDefinitionCollection no existe en el espacio de nombres. Descargué este tutorial de MS y estoy obteniendo los mismos errores. ¿Algo está mal en mi máquina? Http: //windowsclient.net/downloads/folders/hands-on-labs/entry76491.aspx – knockando

+1

La clase RibbonCommand no existe en http://msdn.microsoft.com/en-us/ library/microsoft.windows.controls.ribbon.aspx – knockando

Respuesta

9

Si está utilizando la nueva cinta de Microsoft WPF, se ha eliminado el tipo RibbonCommand. La propiedad Command ahora es un tipo ICommand.

Para ajustar el comando en un RibbonButton, puede hacer lo siguiente:

<ribbon:RibbonButton Command="ApplicationCommands.Copy" /> 

o usar cualquier comando que implementa ICommand.

1

También tiene que hacer referencia al conjunto en el proyecto en sí.

+0

Olvidé mencionar que ya estoy haciendo eso. El proyecto hace referencia a RibbonControlsLibrary (C: \ Program Files \ Microsoft Ribbon for WPF \ V4.0 \ RibbonControlsLibrary.dll). – knockando

3

También puede usar ICommand para implementar su propio comando.

Esta clase debe estar dentro del código.

public class MyCommand : ICommand 
{ 
    public void Execute(object parameter) 
    { 
     string hello = parameter as string; 
     MessageBox.Show(hello, "World"); 
    } 

    public bool CanExecute(object parameter) 
    { 
     return true; 
    } 

    public event EventHandler CanExecuteChanged; 
} 

Necesita tener recursos para utilizar este comando.

<DockPanel.Resources> 
    <local:MyCommand x:Key="mycmd"/> 
</DockPanel.Resources> 

También necesita modificar su elemento xaml para llamar a este comando.

<ribbon:RibbonButton Command="{StaticResource mycmd}" CommandParameter="Hello, command" Label="Copy" LargeImageSource="Images/LargeIcon.png"/> 
Cuestiones relacionadas