2010-11-24 65 views
5

我看到大部分的WPF絲帶例子是在利用一些類似的代碼RibbonCommand未發現

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

我得到這個錯誤...「類型‘R:RibbonCommand’是找不到,確認你沒有遺漏一個程序集引用,並且所有引用的程序集都已經創建好了。「

使用VS 2010,.NET 4.0。

我想弄清楚如何添加一個按鈕到功能區,並在點擊時執行代碼/命令。

謝謝。

+0

也獲取RibbonGroupSizeDefinitionCollection不存在於名稱空間中。我從MS下載了這個演練,我也遇到了同樣的錯誤。我的機器有問題嗎?http://windowsclient.net/downloads/folders/hands-on-labs/entry76491.aspx – knockando 2010-11-24 16:37:02

+1

RibbonCommand類不存在於http://msdn.microsoft.com/en-us/ library/microsoft.windows.controls.ribbon.aspx – knockando 2010-11-24 17:25:20

回答

9

如果您使用的是新的Microsoft WPF功能區,則RibbonCommand類型已被刪除。 Command屬性現在是一個ICommand類型。

要在RibbonButton設置的命令,就可以執行以下操作:

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

或使用實現ICommand的任何命令。

1

您還必須在項目本身中引用程序集。

3

您也可以使用ICommand來實現您自己的命令。

這個類應該在代碼後面。

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; 
} 

您需要有資源才能使用此命令。

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

您還需要修改xaml元素來調用此命令。

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