Hi,
unfortunately ribbon control seems like a CTP version and not a release.
It has many bugs and many mandatory features are not implemented...
Is there any list with the known bugs, and when they will be ready?
Many of the bugs are show stopper. So in order to create a release, i must 'cut' some features.
Can i release Version 1 of an application and wait for 10.2 around June in order to release feature full Version 2 of that application?
Regards,
Michael
Hi Michael,
Could you provide some more information about the issues you have?
If you could provide some details about those show stopper bugs, that'll be very helpful.
Also, which features are you missing in the current implementation?
Hi Georgi,
Just some thoughts that solves real time issues...
I have a menu tool to select the active account.I would like the menu items to be bound on the list of accounts and the selected account to be part of the menu tool caption and description.(this applies for segmented menu tool also)
For recent items i would like to have a list of items bound to the model and be able to select the active item from the list.Also for the hovered item i would like to display a [remove from list] command.(like ie8 address bar combo box)
The recent items list does not support vertical scroll bar
I would like to template the caption and bind it to the model in order to show more structured information to the user
It would be nice to have a minimize button visible on the tabs header line docked to right.
More tools out of the box for the ribbon(combo box, radio group, text edit etc).
Ability to place the same tool on two different tabs and not only on qat
Ability to bind a galery (eg themes) to a list of items and template it
Maybe there are more things that i have not faced or don't remember now...
First of all, thanks for the details. It's really good to get feedback on how the control is being used in a production application. This is helping us identify some blind spots and make improvements in the design.
I'll try to throw some light on the issues you have listed:
"I would like the menu items to be bound on the list of accounts...":
Most of Ribbon's collections are strongly typed and you couldn't use bindings to provide a valid list with your data objects. For example: MenuTool's Items collection is a collection of RibbonToolBase objects, so you can't bind it to a list with data objects (e.g., accounts).
"... and the selected account to be part of the menu tool caption and description":
According to Microsoft's design guidelines, the caption of the tools on the Ribbon must not change.
"For recent items i would like to have a list of items bound to the model and be able to select the active item from the list.":
With recent items we wanted to be consistent with the behavior of our WPF Ribbon. Although you can place any object there, you can't bind to a list of items in your model , because the RecentItems property is read-only. So you'll need to add some logic in your view model that will keep track on the list of items in your model and update the list of recent items respectively.
"Also for the hovered item i would like to display a [remove from list] command.(like ie8 address bar combo box)":
That should be pretty easy, as you could add pretty much anything there. Here is what I was able to do in a couple of minutes (the "X" button is visible only for the hovered item)
"The recent items list does not support vertical scroll bar":
Microsoft's guidelines are very strict about that: "Vertical scrollbars must not be displayed for either the left or right pane of the Application Menu".
"I would like to template the caption and bind it to the model in order to show more structured information to the user":
I couldn't understand which caption are you referring to.
"It would be nice to have a minimize button visible on the tabs header line docked to right.":
What would that button do ?
"More tools out of the box for the ribbon(combo box, radio group, text edit etc).":
This is definitely an area for improvement and we will add more tools over time. For radio group, you could use RadioButtonTools that share the same GroupName and eventually organize them in a ButtonGroup.
"Ability to place the same tool on two different tabs and not only on qat":
You could just copy the same tool onto the other tab. Keep in mind that Microsoft's design guidelines say that "Controls should exist on only one tab in the Ribbon. Controls should not be repeated on more than one tab in the Ribbon whenever possible"
"Ability to bind a galery (eg themes) to a list of items and template it":
This is related to the first one: the Items collection of the GalleryTool is strongly typed and it's not bindable.
Again, thanks for your feedback!
thank you for the clarifications....
Regarding the MenuTool and the list of accounts, the issue is the following.
I create the menu items with code, but the caption and the extra information come later from a service.So i would like to bind each menu caption to a property of the account.Now i have to listen to property changed event of each account and update the appropriate item...
Also the description could be bound to the selected account, so when the user hovers over the Accounts menu he will see the selected one
Regarding the recent items, maybe a property that would define the max number of items could do the trick, and the application menu should resize itshelf inorder to display this maximum number of items.Or we could have a max visible number of items, and if it is exceeded, a dialog button to appear on recent items header in order to manage them... just thoughts,I have not read ribbon guidelines neither have seen office2010 and so i don't know how it handles the recent documents section of appmenu
It would be nice the ribbon caption to be a templated control, in order to show more structured information on the ribbon caption section (selected account, application name, etc on the title of the application)
Regarding the minimize button on the tabs line, instead the user going to QATMenu to make the ribbon minimized/maximized, he could just click the maximize/minimize button on the right side of the tabs line
I don't use commanding for tool actions.I read the id on the clicked handler and depending the id i perform the command(bad design, but i was in a hurry...). So i cannot put the same tool id on two different tabs. I was thinking something like tools collection, that will have all the tools defined with an id and then on the tabs we could just put the toolid from the repository in order to be shown.Something like the QAT does
I could not extract the template of Ribbon from vs2010, so i could not retemplate it.. I would appreciate if you post the xaml that you created for the recentitem hovered state....
Thank you in advance,
PS
I also believe that through feedback we always make software better , as long as the requests are filtered properly and don't mess our API's :)
Hey Michael,
Sorry for the delayer response.
I see your point with binding the menu item's caption to the accounts. Unfortunatelly , the ribbon tools are derived from DependencyObject, so they don't support binding at runtime (they don't offer SetBinding method).
Regarding the Recent Items area height: According to the guidelines from Microsoft, application menu's height is determined by the tools in the left pane of the menu. It cannot exceed the height, required to display those tools.
About the minimize button: You can change the default template of the Ribbon and add such button. You can find Ribbon's default style in "Default Styles" folder under the installation path of the product (there should be a link in start menu program folder also).
Regarding the way you use the Id's to execute the corresponding command: Since you can't have the same id on different tools, you could change the IDs to avoid duplicates and then add some "OR"s when reading the Id in the clicked handler.
About the "Delete" button in the Recent Items: I actually created very simple custom control to display in the "Recent Items" area. I think that's the better way than changing the recent items template of the Ribbon. Attached is a sample of what I did. You could use the idea and change it to fit your needs.
Hope that helps,
Thanx for the help and clarifications.
Indeed creating a custom control for the recent items seems the best option.