Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
20
XamRibbon with prism
posted

Hi,

I'm trying to figure out how to use ribbons in a real application, using regions in prism (http://compositewpf.codeplex.com). I'd actually want to work on the ideas of the infragistics salesman sample, but using a more modular architecture. The goal is to be able to display different sub-applications, all managed through a ribbon menu.  

So let's say I have a menu region which uses a xamribbon. In another module I also have a mainRegion, which displays datagrids, graphs ... just below the ribbon. 

How could I dynamically re-position my mainRegion so that I remains just below the ribbon, even after I clicked on minimize (isMinimized property = TRUE) ? (currently my mainRegion remains where it was initially defined). 

Thanks

Fabien

 

 

Parents
No Data
Reply
  • 115
    posted

    I've been working on doing integrating ribbons with prism, and I can tell you it's not easy. I think I have most of the problems solved by having my shell that contains the ribbon publishing which button was clicked and my controls viewmodels subscribing to those events. The controls publish their current state (like selected records, active tabs, etc.) through events using elaborate event args which the shell is subscribing to display the correct context tabs on the ribbon. I think I can help you with your problem here.

    <igRibbon:RibbonWindowContentHost>
    <igRibbon:RibbonWindowContentHost.Ribbon>
    <igRibbon:XamRibbon Name="xamRibbon1"
    Theme="Office2k7Black">
                    </igRibbon:RibbonWindowContentHost.Ribbon>
    		<igRibbon:RibbonWindowContentHost.StatusBar>
    </igRibbon:RibbonWindowContentHost.StatusBar>

    <DockPanel LastChildFill="True">
    <Canvas x:Name="adornerLayer"
    Visibility="Collapsed" />



    <ScrollViewer x:Name="scroll"
      ScrollViewer.HorizontalScrollBarVisibility="Disabled"
      ScrollViewer.VerticalScrollBarVisibility="Auto">
    <ItemsControl x:Name="DisplayRegionControl"
      HorizontalAlignment="Stretch"
      HorizontalContentAlignment="Stretch"
      VerticalAlignment="Stretch"
      VerticalContentAlignment="Stretch"
      regions:RegionManager.RegionName="DisplayRegion" />
    </ScrollViewer>
    </DockPanel>

    Not sure if the DockPanel is still necessary with this example, but this works for us.

Children