Hi Marc,
There's nothing else you can do with the current codebase. We have updated the code for the next maintenance release to invalidate the measure on the containing StackPanel in this scenario. That seems to resolve the issue.
Hi Marc,
There's nothing else you can do with the current codebase. We have updated the code for the next maintenance release to invalidate the measure on the containing StackPanel in this scenario. That seems to resolve the issue.
I decided to use the RecentDocumentMenu and Manager. Since it needed to look quite different from the default one I changed the template as needed. I have only one more thing to do. I like the pinning functionality but I would like to capture that event in my ViewModel. From the xaml I see that it the pin button executes
<Setter Property="Command" Value="{x:Static Input:RibbonCommands.TogglePin}" />.
I cannot change that, but I would like to register for a document pinned event so that I can do some processing. I have no clue on how to do that. Any suggestion?
Thanks again. When do you expect the next maintenance release?
We don't have an event for that but you could make an attached behavior. Basically make an attached property and set that property in a Setter of that pin button. Then in the property changed handler for the attached property attach to the click event of the target button and do your processing there.
Hi Marc,
It should be out in the next several weeks.
I have an ApplicationMenu that I'm binding the ItemsSource to an ObservableCollection and I know that the binding is happening correctly because I see an item in the menu for each item in the list however it seems that setting the ItemTemplateSelector is having no effect.
<ribbon:ApplicationMenu ItemsSource="{Binding MenuItems}" ItemTemplateSelector="{StaticResource AppMenuTemplateSelector}"/>
The breakpoint in the template selector is never hit.
Ben
Does ItemTemplateSelector not work for ApplicationMenu items?
Hi Ben,
Sorry but ItemTemplateSelector won't work here. You'd need to set the ItemsSource directly to the list of controls to put in the app menu.
Is there also a feature to do what Adam showed in his first screenshot? That is, display a custom backstage-like fullscreen menu that is only used when you first open the application. Kind of like a quick start page.
Hi Scott,
Sorry but nothing is built-in for that as of yet.
We're also quite interested in the "backstage splash" or "cold open screen" or whatever it might be called. We're currently dumping users into the backstage "open" screen on cold open, but that doesn't quite match all the usage scenarios we have. I can see the motivation for this initial launch screen.
Thanks for the suggestions everyone. How ideally would you like this additional open screen to work? It is a different size from the normal backstage in terms of the left gutter width. And I'm not sure of what object model you'd want in the API.
For us, setting some kind of dependency property would be enough. We'd only use it on a cold startup, where the user accesses the app from its icon, instead of from a recent document or shell verb. This appears to be how Office apps use this screen, as well. We'd probably check how the app was starting and the backing view model would set a property which we'd bind to this DP on the UI.
Same as Rory on the usage scenario.
I'm probably going to implement this in our app for now, as it's an important part of our "first 15 minutes with the app" story. I'll update this thread with any important design considerations I discover through the implementation, but here's what I have in mind for how you would implement it:
Any further customization would happen by overriding the whole template for BackstageSplash, but the core things you'd be doing for us would be:
Right, as to content model, I was imagining the entire thing would just be a ContentControl where I could provide the template and draw it how I need in an app specific way. If the Headered Left/Headered Right template were to be adopted in the control itself, at least let me replace the entire ControlTemplate so I can manage the layout as needed (meaning even removing the split if needed).
Hi,
we are trying to create an overlay that takes the whole ribbon window and makes it impossible to use any of the controls in the underlying ribbon window. I added some code below to illustrate what we have done. If we do it like this, the overlay will just take the client area. In the title bar there are still controls that should not be used as long as the overlay is active, e.g. in the quick access toolbar.
Is there an easy way to have the overlay capture the whole ribbon window?
Thanks for any ideas
Marc
<ribbon:RibbonWindow xmlns:ribbon="http://schemas.actiprosoftware.com/winfx/xaml/ribbon">
<Grid>
<Border x:Name="Overlay" BorderThickness="0" Background="#20000000" Visibility="Visible" />
</Grid>
</ribbon:RibbonWindow>
Hi Marc,
You could set Ribbon.QuickAccessToolBarLocation = None while that overlay is displayed. That will hide it.
Thanks for your answer. This works, but we would prefer a solution with the overlay effect capturing the whole window und not just the client area. Is it possible to extend to overlay to make the title bar look grey as well?
Hi Marc,
You could make an Adorner and put your element in that. We have an AdorneryDecorator right at the root of RibbonWindow's template, so it will cover the non-client area too.
Thanks again, this led to a solution. After finding the "outerGrid" I am able to capture the whole window.