我正在尝试在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" />
它就可以了!
感谢您的帮助和时间
答案 0 :(得分:0)
我怀疑您使用的是旧版本,因为Label属性不再有效。可以找到最新版本here。
答案 1 :(得分:0)
我下载了该功能区但由于某种原因无法添加引用。无论如何,我下载了一个例子,它明确表示如果它是空的,该组将抛出异常。所以现在一切正常。谢谢你的帮助!