RadSplitContainer and Canvas.ZIndex

6 posts, 0 answers
  1. Michael
    Michael avatar
    15 posts
    Member since:
    Jul 2011

    Posted 27 Jul 2011 Link to this post

    We have a splash screen that needs to briefly cover the entire RadDocking area.

    Any RadSplitContainer that is floating wants to appear over the splash screen canvas.  The layout looks something like this:

    <Grid>
      <telerik:RadDocking Canvas.ZIndex="1">
        <telerik:RadSplitContainer InitialPosition="FloatingOnly" Margin="0" Padding="0" Canvas.ZIndex="1">
          <telerik:RadPaneGroup >
            <telerik:RadPane CanFloat="True">
              <!-- content-->
            </telerik:RadPane>
          </telerik:RadPaneGroup>
        </telerik:RadSplitContainer>      
      </telerik:RadDocking>
      <comp:Splash Margin="0,0,0,0" Canvas.ZIndex="99999" />
    </Grid>

    We're using version 2011.2.712.1040

    Changing the ZIndex doesn't seem to help.  What's the workaround?
  2. Pana
    Admin
    Pana avatar
    748 posts

    Posted 03 Aug 2011 Link to this post

    Hello Michael,

    Open the overlay in a Popup after the RadDocking opens its popup containing the ToolWindows. XAML:

    <UserControl x:Class="RadDockingOverlay.MainPage"
            mc:Ignorable="d"
            d:DesignHeight="300" d:DesignWidth="400" Loaded="UserControl_Loaded">
      
        <Grid>
            <telerik:RadDocking Canvas.ZIndex="1">
                <telerik:RadSplitContainer InitialPosition="FloatingOnly" Margin="0" Padding="0" Canvas.ZIndex="1">
                    <telerik:RadPaneGroup >
                        <telerik:RadPane CanFloat="True">
                            <!-- content-->
                        </telerik:RadPane>
                    </telerik:RadPaneGroup>
                </telerik:RadSplitContainer>
            </telerik:RadDocking>
            <Popup x:Name="popup" Width="2000" Height="2000">
                <Rectangle Width="2000" Height="2000" Fill="#66FF0000" />
            </Popup>
        </Grid>
      
    </UserControl>

    And code behind:

    using System.Windows;
    using System.Windows.Controls;
      
    namespace RadDockingOverlay
    {
        public partial class MainPage : UserControl
        {
            public MainPage()
            {
                InitializeComponent();
            }
      
            private void UserControl_Loaded(object sender, RoutedEventArgs e)
            {
                this.Dispatcher.BeginInvoke(() =>
                    {
                        this.popup.IsOpen = true;
                    });
            }
        }
    }


    Kind regards,
    Pana
    the Telerik team
    Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get now >>
  3. DevCraft banner
  4. Michael
    Michael avatar
    15 posts
    Member since:
    Jul 2011

    Posted 05 Aug 2011 Link to this post

    Thank you!

    I had a struggle getting this to work.  In our case, the floating tool windows insist on being above all other things in the application.  I had to juggle how groups and windows are added to mitigate the problem.

    Now - I'm also having an issue with RadBusyIndicator being below the floating windows.   Again, the Zindex has no effect....

    Is there a control or setting in the visual hierarchy I'm missing?

    Another frustrating thing is that I can't bring a window to the front when I want to (my other thread).

    In short, it seems like I cannot control the display order of floating windows at all.... 
  5. Miroslav Nedyalkov
    Admin
    Miroslav Nedyalkov avatar
    1718 posts

    Posted 10 Aug 2011 Link to this post

    Hi Michael,

     The ZOrder property doesn't help, because its purpose is to determine which item should be rendered first when all the items share the same parent. This is not the case with the ToolWindows - after 2011 Q2 every ToolWindow has its own Popup which ZOrder is determined by the time it is opened. When a ToolWindow is clicked by the user it is brought to the front, which reopens its popup and it is displayed over all currently opened popups.

    The RadBusyIndicator control on the other hand, doesn't use a Popup to display the busy indicator so it is expected its busy indicator to be displayed below the ToolWindows.

    Hope this information is helpful.

    Best wishes,
    Miroslav Nedyalkov
    the Telerik team

    Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get now >>

  6. Michael
    Michael avatar
    15 posts
    Member since:
    Jul 2011

    Posted 10 Aug 2011 Link to this post

    Thanks Miroslav - This explains much.

    The current ToolWindow implementation seems to be very hard to manage.   Just in terms of the RadBusyIndicator, I've tried several scenarios (using popups, wrapping RadDocking, etc) and the floating toolwindows insist on floating above it.

    I know a modal status dialog for the whole app isn't the best design choice, but it's required at the moment...

    In general, what's a method for manipulating the zorder of the floating toolwindows?

    Thanks,

    Mike

  7. Miroslav Nedyalkov
    Admin
    Miroslav Nedyalkov avatar
    1718 posts

    Posted 11 Aug 2011 Link to this post

    Hello Michael,

     I understand that when we use popups this makes it harder for you to put a busy indicator over all the windows, but we wanted the ToolWindows to act as real windows. You could either use a dialog window as you suggested or change the ControlTemplate of the BusyIndocator and place a popup in it.

    If you have further questions don't hesitate to ask.

    Best wishes,
    Miroslav Nedyalkov
    the Telerik team

    Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get now >>

Back to Top
DevCraft banner