问题标签 [fluent-ribbon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1238 浏览

ribbon - Fluent Ribbon 后台开启?

是否可以在 Fluent Ribbon 中以编程方式打开 Backstage 控件?

0 投票
1 回答
1344 浏览

wpf - WPF Fluent Ribbon KeyTip 快捷方式不触发命令

我正在使用 Fluent Ribbon。我正在努力让KeyTips 工作。它适用于导航,因为我可以在选项卡之间导航并且所有内容都正确显示。我的问题是当我最终尝试运行命令时没有任何反应。按下下面的按钮。我可以按 导航到它ALT -> F,然后按C什么都不会发生,除非它删除KeyTip tooltip. 它不运行实际命令。如果我只需单击按钮,它就可以正常工作。下面是我如何绑定命令的 XAML 示例。

使用 KeyTip 时是否需要一些特殊的方法来设置命令?

我已经尝试过 Fluent 库附带的示例,但它们实际上并没有实现任何命令。但是,如果我在其中实现一个简单的命令,它也不在那里工作。

KeyTip 的功能区纯图形导航也是如此,我是否需要使用手势和 WPF 中可用的其他东西来实现我自己的热键侦听器来触发命令?

0 投票
1 回答
1357 浏览

wpf - 功能区中的第一组定义不显示图标

我正在尝试使用 Fluent Ribbon 中的布局定义。我遇到的问题是它没有在第一个组定义内的按钮上显示图标。这是下面的适当片段:

在此示例中,第一个按钮存在,但没有图标。如果我将它们全部放在一组中,则所有按钮都没有图标。

0 投票
0 回答
68 浏览

excel-2007 - 使 RibbonUI 中的 xml 对象无效

我在符合 2007/2010 的 Excel 文档中有一个 RibbonUI(Fluent Ribbon)。

当根据文件中包含的设置加载 excel 文件时,我可以成功地在 xml 文件中显示/隐藏选项卡/组。

如果我想将其范围扩展到单个按钮,我需要合并什么才能发生这种情况?

我是否需要将该getVisible属性扩展到每个有条件可见的按钮?

0 投票
2 回答
2354 浏览

excel - 无效不会隐藏标签

我试图突破我对 Office 2007/2010 框架中 Fluent Ribbon/RibbonUI 系统的理解的极限。

结合我对 WPF/Silverlight 的 XAML 设计的知识和理解,我想看看我是否可以动态显示/隐藏下面描述的 Office 菜单项,似乎我有 FUBAR 的一些东西。

请告知我哪里出错了,或者我需要进一步开发的地方:

自定义UI.xml

VBA:

更新:

做了一些详细的测试,它在技术上是可行的,但我最终要完成的是Home, Insert, Page Layout, Formulas, Data, Review, View, Developer, etc.从功能区显示/隐藏选项卡的能力。我试图消除元素中startfromscratch属性的需要或必要性。customui

0 投票
1 回答
641 浏览

wpf - Fluent Ribbon:指定上下文选项卡组的位置?

在 Fluent Ribbon Control Suite 中,有没有办法让上下文选项卡组首先显示而不是最后显示?我使用的是旧版本,前三个选项卡项有一个上下文选项卡组,另外两个没有组。下载并构建了最新的源码;组中的选项卡现在位于右端。我希望它们以与我在 xaml 中指定的顺序相同的顺序显示。我没有看到任何明显的属性可以让我指定顺序。

0 投票
0 回答
244 浏览

visual-studio-2008 - WPF Fluent Ribbon 编译问题

我正在尝试使用 Visual Studio 2008 为 .NET 3.5 编译最新版本的 Fluent Ribbon (e709a1f6bb2e),但我遇到了一些问题。

删除空的 (?) Office2007 主题和 Metro 主题(产生问题)后,编译器仍然显示错误,Themes/generic.xaml并且Themes/Office2010/Black.xaml...

如您所见,Namespace 已添加到 Xaml,我可以ObjectToImageConverter-class在解决方案中找到 public。

有人知道我做错了什么吗?

0 投票
2 回答
2939 浏览

wpf - 如何将按钮图标绑定到下拉列表的选定项?

在 WPF 应用程序中并使用 Fluent Ribbon Control Suite,我有一个 DropDownButton,它打开一个库,让用户选择一种颜色。

附表 1

这是创建按钮的 XAML:

Gallery 的 SelectedItem 返回颜色的名称。我想让按钮的图标显示选择的实际颜色。这可以纯粹用 XAML 完成吗?我一直在尝试在网上找到的各种东西,但到目前为止,除了颜色名称之外,我无法让颜色名称出现在我想要颜色矩形所在的位置。寻找“这里发生了什么?” 在上面的 XAML 中。

我感谢任何有用的建议。谢谢阅读!

更新:

我尝试了下面给出的答案,但它仍然不起作用。我一定有什么问题。这是此按钮的所有 XAML 代码的更新列表。查看 Gallery 本身的 XAML 和 SolidColorBrush 的绑定,如果您发现我做错了什么,请告诉我。

0 投票
1 回答
1633 浏览

c# - WPF Ribbon Fluent:DropDownButton + Caliburn.Micro 事件

我正在尝试在使用 Caliburn.Micro 的 WPF 应用程序中使用 Fluent 功能区控件中的 DropDownButton。

到目前为止,一切都很好。我在 DropDownButton 中看到我的独角兽列表作为 GalleryItems。唯一的问题是我无法让“ShowUnicorn()”工作。当我单击 DropDownButton 列表中的某个项目时,它什么也不做。难道我做错了什么?

这是我使用的代码:

提前致谢。

0 投票
1 回答
539 浏览

c# - UI 元素添加到控件集合时抛出异常

我正在尝试在另一个线程中为我的应用程序加载我的插件。该过程非常耗时,并且应用程序在启动时会冻结很长时间。系统工作如下:

xml 文件定义应添加到 UI 的控件和类型。一个类现在读取 XML 并创建控件。这些是由 Invoking 创建的(使用主 UI-Thread 的 Dispatcher)。

在这种情况下,我正在创建一个 RibbonTabItem(来自 Codeplex 的 Fluent Ribbon)。一切正常,直到我将此控件添加到功能区本身。即使通过调度程序调用也会发生这种情况。但是一旦这条线被调用:

我得到这个异常堆栈跟踪:

在 System.Windows.Freezable.EnsureConsistentDispatchers(DependencyObject owner, DependencyObject child) at System.Windows.Freezable.OnFreezablePropertyChanged(DependencyObject oldValue, DependencyObject newValue, DependencyProperty property) at System.Windows.Media.RenderData.PropagateChangedHandler(EventHandler handler, Boolean added)在 System.Windows.UIElement.RenderClose(IDrawingContent newContent) 在 System.Windows.Media.VisualDrawingContext.CloseCore(RenderData renderData) 在 System.Windows.Media.RenderDataDrawingContext.DisposeCore() 在 System.Windows.Media.DrawingContext.System.IDisposable .Dispose() 在 System.Windows.Media.RenderDataDrawingContext.Close() 在 System.Windows.UIElement.Arrange(Rect finalRect) 在 MS.Internal.Helper.ArrangeElementWithSingleChild(UIElement 元素,System.Windows.Controls.ContentPresenter.ArrangeOverride 的大小排列大小)在 System.Windows.FrameworkElement.ArrangeCore(矩形 finalRect)在 System.Windows.UIElement.Arrange(矩形 finalRect)在 System.Windows.Controls.Border。 ArrangeOverride(Size finalSize) 在 System.Windows.FrameworkElement.ArrangeCore(Rect finalRect) 在 System.Windows.UIElement.Arrange(Rect finalRect) 在 System.Windows.Controls.Control.ArrangeOverride(Size attachBounds) 在 System.Windows.FrameworkElement。在 System.Windows.Controls.Border.ArrangeOverride(Size finalSize) 在 System.Windows.FrameworkElement.ArrangeCore(Rect finalRect) 在 System.Windows.UIElement 的 System.Windows.UIElement.Arrange(Rect finalRect) 的 ArrangeCore(Rect finalRect)。在 System.Windows.Controls.Grid 中排列(矩形 finalRect)。在 System.Windows.UIElement.Arrange(Rect finalRect) 在 System.Windows.Controls.Control.ArrangeOverride(Size attachBounds) 在 System.Windows.FrameworkElement. ArrangeCore(Rect finalRect) 在 System.Windows.UIElement.Arrange(Rect finalRect) 在 Fluent.RibbonTabsContainer.ArrangeOverride(Size finalSize) 在 System.Windows.FrameworkElement.ArrangeCore(Rect finalRect) 在 System.Windows.UIElement.Arrange(Rect finalRect) ) 在 System.Windows.Controls.ScrollContentPresenter.ArrangeOverride(Size translateSize) 在 System.Windows.FrameworkElement.ArrangeCore(Rect finalRect) 在 System.Windows.UIElement.Arrange(Rect finalRect) 在 System.Windows.Controls.Grid.ArrangeOverride( System.Windows 中的大小排列大小)。FrameworkElement.ArrangeCore(Rect finalRect) 在 System.Windows.UIElement.Arrange(Rect finalRect) 在 System.Windows.Controls.Control.ArrangeOverride(Size attachBounds) 在 System.Windows.Controls.ScrollViewer.ArrangeOverride(Size translateSize) 在系统。 Windows.FrameworkElement.ArrangeCore(Rect finalRect) 在 System.Windows.UIElement.Arrange(Rect finalRect) 在 System.Windows.Controls.DockPanel.ArrangeOverride(Size translateSize) 在 System.Windows.FrameworkElement.ArrangeCore(Rect finalRect) 在 System。 Windows.UIElement.Arrange(Rect finalRect) 在 System.Windows.ContextLayoutManager.UpdateLayout() 在 System.Windows.UIElement.UpdateLayout() 在 Fluent.RibbonTabControl.UpdateSelectedContent() 在 Fluent.RibbonTabControl.OnSelectionChanged(SelectionChangedEventArgs e) 在系统。 Windows.控件。Primitives.Selector.InvokeSelectionChanged(列表1 unselectedInfos, List1 selectedInfos) 在 System.Windows.Controls.Primitives.Selector.SelectionChanger.End() 在 System.Windows.Controls.Primitives.Selector.SelectionChanger.SelectJustThisItem(ItemInfo info, Boolean assumeInItemsCollection) 在 System.Windows.Controls.Primitives.Selector .OnSelectedIndexChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) 在 System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e) 在 System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e) 在 System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args) 在 System.Windows。 DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry,在 System.Windows.Controls.Primitives.Selector.OnItemsChanged(NotifyCollectionChangedEventArgs e) 在系统的 Fluent.RibbonTabControl.OnItemsChanged(NotifyCollectionChangedEventArgs e) 的 System.Windows.DependencyObject.CoerceValue(DependencyProperty dp) 的 Boolean coerceWithDeferredReference、Boolean coerceWithCurrentValue、OperationType operationType)。 Windows.Controls.ItemsControl.OnItemCollectionChanged2(Object sender, NotifyCollectionChangedEventArgs e) 在 System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e) 在 System.Windows.Data.CollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args) 在 System.Windows。 Controls.ItemCollection.OnViewCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e) 在系统。Windows.WeakEventManager.ListenerList1.DeliverEvent(Object sender, EventArgs e, Type managerType) at System.Windows.WeakEventManager.DeliverEvent(Object sender, EventArgs args) at System.Collections.Specialized.CollectionChangedEventManager.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args) at System.Windows.Data.CollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args) at MS.Internal.Controls.InnerItemCollectionView.Insert(Int32 index, Object item) at System.Windows.Controls.ItemCollection.Insert(Int32 insertIndex, Object insertItem) at Fluent.Ribbon.OnTabsCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e) at System.Collections.ObjectModel.ObservableCollection1.OnCollectionChanged(NotifyCollectionChangedEventArgs e) 在 System.Collections.ObjectModel.ObservableCollection 1.InsertItem(Int32 index, T item) at System.Collections.ObjectModel.Collection1.Add(T item) 在 FGCore.GUI.MenuSystem.RibbonUIHost.<> c_DisplayClass12.b_4() 在 d:\Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\Core\FGCore.GUI\MenuSystem\RibbonUIHost.cs:System.Windows.Threading.Dispatcher.Invoke 的第 77 行(操作回调,DispatcherPriority 优先级,CancellationToken d:\Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\Core\FGCore 中 FGCore.GUI.MenuSystem.RibbonUIHost.SortHulls() 的 System.Windows.Threading.Dispatcher.Invoke(操作回调)的取消令牌、时间跨度超时)。 GUI\MenuSystem\RibbonUIHost.cs:FGCore.GUI.MenuSystem.UIHost.Add(String id, FrameworkElement element, Int32 order, PropertiesCollection meta) 中的第 77 行,位于 d:\Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\Core\ FGCore.GUI\MenuSystem\UIHost.cs: FGCore.Addin.Integrity.IntegrationPipeline的第 54 行。<>c_DisplayClass1a.b_13() in d:\Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\Core\FGCore.Addin\Integrity\IntegrationPipeline.cs:System.Windows.Threading.DispatcherOperation.InvokeDelegateCore() 处 System.Windows.Threading 处的第 486 行.DispatcherOperation.InvokeImpl() --- 从先前引发异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task ) 在 System.Windows.Threading.DispatcherOperation.Wait(TimeSpan timeout) 在 System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherOperation operation, CancellationToken cancelToken, TimeSpan timeout) 在 System.Windows.Threading.Dispatcher.Invoke(Action callback, DispatcherPriority优先,System.Windows.Threading.Dispatcher.Invoke(操作回调)处的 CancellationToken 取消令牌,TimeSpan 超时)在 d:\ Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\Core\FGCore.Addin\Integrity\IntegrationPipeline.cs: d:\Sicherung\Visual Studio 中 FGCore.Addin.Integrity.IntegrationPipeline.ExtendRibbonHost(XmlElement hostNode, IntegrationDescription desc) 的第 486 行\Workspace\ProjectFlowerGrid\src\Core\FGCore.Addin\Integrity\IntegrationPipeline.cs: d:\Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\ 中 FGCore.Addin.Integrity.IntegrationPipeline.ProcessExtensibility(IntegrationDescription 描述)的第 392 行核心\FGCore。Addin\Integrity\IntegrationPipeline.cs:d:\Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\Core\FGCore.Addin\AddinProvider.cs 中 FGCore.Addin.AddinProvider.RunAddin(Guid id,SettingsFile 注册表)的第 359 行: d:\Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\Core\FGCore.Addin\AddinProvider.cs 中 FGCore.Addin.AddinProvider.RunAddins() 的第 348 行:FGCore.Addin.AddinCore.RunAddins() 中的第 313 行d:\Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\Core\FGCore.Addin\AddinCore.cs:ProjectFlowerGrid.IDE.b_ 的第 91 行\Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\Core\FGCore.Addin\AddinProvider.cs: d:\Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\Core 中 FGCore.Addin.AddinCore.RunAddins() 的第 313 行\FGCore.Addin\AddinCore.cs:ProjectFlowerGrid.IDE.b_ 的第 91 行\Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\Core\FGCore.Addin\AddinProvider.cs: d:\Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\Core 中 FGCore.Addin.AddinCore.RunAddins() 的第 313 行\FGCore.Addin\AddinCore.cs:ProjectFlowerGrid.IDE.b_ 的第 91 行1() 在 d:\Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\ProjectFlowerGrid.ApplicationBase\IDE.cs: System.Threading.Tasks.Task.InnerInvoke() 在 System.Threading.Tasks.Task.Execute 的第 253 行() --- 从先前引发异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System. ProjectFlowerGrid.IDE.d 上的 Runtime.CompilerServices.TaskAwaiter.GetResult()_2.MoveNext() in d:\Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\ProjectFlowerGrid.ApplicationBase\IDE.cs:line 253 --- 从先前抛出异常的位置结束堆栈跟踪---在 System. Runtime.CompilerServices.AsyncMethodBuilderCore.b__0(Object state) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args , Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state ,Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Threading.DispatcherOperation .Invoke() 在 System.Windows.Threading.Dispatcher.ProcessQueue() 在 System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&handled) 在 MS.Win32.HwndWrapper.WndProc (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& 处理) 在 MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) 在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) 在 MS .Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) 在 MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) 在 System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) 在 System.Windows .Threading.Dispatcher.PushFrame(DispatcherFrame frame) at System.Windows.Threading.Dispatcher.Run() at System.Windows.Application.RunDispatcher(Object ignore) at System.Windows.Application.RunInternal(Window window) at System.Windows .Application.Run(窗口窗口)在系统。d:\Sicherung\Visual Studio\Workspace\ProjectFlowerGrid\src\ProjectFlowerGrid.ApplicationBase\obj\Debug\App.g.cs 中 ProjectFlowerGrid.App.Main() 的 Windows.Application.Run():System.AppDomain 的第 50 行._nExecuteAssembly(RuntimeAssembly assembly, String[] args) at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) 在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 在 System.Threading.ThreadHelper.ThreadStart_Context(对象状态)在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart()

我已经读到这可能是由在一个线程中创建并在另一个线程中使用的资源(如画笔)引起的。很有道理。但我真的不知道如何解决这个问题。如果我必须冻结所有资源,我怎么能不手动为每个 Freezable 执行此操作?

还有其他想法吗?

谢谢 :)