添加RibbonGroup时出现未处理的异常

时间:2011-03-25 11:32:58

标签: wpf ribbon ribbon-control

我正在尝试在WPF应用程序中实现Outlook功能区,并且功能区正常工作。但是,当我尝试添加RibbonGroup时,我在XAML中得到一个未处理的异常。

这是我的代码:

<r:RibbonWindow 
    x:Class="WpfArticles.Main"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
    Title="Main" Height="500" Width="500">

    <StackPanel>
        <r:Ribbon Title="WPF Ribbon - Document1" x:Name="ribbon" >
            <r:RibbonTab Label="Home">
                <r:RibbonGroup Name="Test" />
            </r:RibbonTab>
            <r:RibbonTab Label="Insert"/>
            <r:RibbonTab Label="Help"/>
        </r:Ribbon >

我在XAML中收到此错误:

Object reference not set to an instance of an object. at
Microsoft.Windows.Controls.Ribbon.RibbonGroup.OnApplyTemplate() at
System.Windows.FrameworkElement.ApplyTemplate() at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.StackPanel.MeasureOverride(Size constraint) at
Microsoft.Windows.Controls.Ribbon.RibbonGroupsContainer.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint) at
System.Windows.Controls.ScrollContentPresenter.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV) at
System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV) at
System.Windows.Controls.Grid.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.ScrollViewer.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Grid.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Border.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint) at
System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Control.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV) at
System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV) at
System.Windows.Controls.Grid.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Control.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.StackPanel.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint) at
System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Decorator.MeasureOverride(Size constraint) at
System.Windows.Documents.AdornerDecorator.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV) at
System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV) at
System.Windows.Controls.Grid.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Border.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Border.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.DockPanel.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Border.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Grid.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Control.MeasureOverride(Size constraint) at
MS.Internal.WindowControl.DesignTimeWindow.MeasureOverride(Size availableSize) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
MS.Internal.Designer.SimpleViewManager.DesignerBackground.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Decorator.MeasureOverride(Size constraint) at
Microsoft.Windows.Design.Interaction.DesignerView.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
MS.Internal.Designer.Viewport.MeasureOverride(Size availableSize) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint) at
System.Windows.Controls.ScrollContentPresenter.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV) at
System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV) at
System.Windows.Controls.Grid.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.ScrollViewer.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Grid.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint) at
System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Controls.Control.MeasureOverride(Size constraint) at
System.Windows.FrameworkElement.MeasureCore(Size availableSize) at
System.Windows.UIElement.Measure(Size availableSize) at
System.Windows.Interop.HwndSource.SetLayoutSize() at
System.Windows.Interop.HwndSource.set_RootVisualInternal(Visual value) at
System.Windows.Interop.HwndSource.set_RootVisual(Visual value) at
MS.Internal.Designer.VSIsolatedDesigner.ViewHolder.Initialize() at
MS.Internal.Designer.VSIsolatedDesigner.ViewHolder..ctor(UIElement content) at
MS.Internal.Designer.VSIsolatedDesigner.VSIsolatedView.get_ViewHandle() at
MS.Internal.Host.Isolation.IsolatedView.get_ViewHandle() at
MS.Internal.Designer.DesignerPane.LoadDesignerView()

我做错了什么?没有<r:RibbonGroup Name="Test" />它就可以了!

感谢您的帮助和时间

2 个答案:

答案 0 :(得分:0)

我怀疑您使用的是旧版本,因为Label属性不再有效。可以找到最新版本here

答案 1 :(得分:0)

我下载了该功能区但由于某种原因无法添加引用。无论如何,我下载了一个例子,它明确表示如果它是空的,该组将抛出异常。所以现在一切正常。谢谢你的帮助!