This is a migrated thread and some comments may be shown as answers.

RadSplitContainer and Canvas.ZIndex

5 Answers 92 Views
Docking
This is a migrated thread and some comments may be shown as answers.
Michael
Top achievements
Rank 1
Michael asked on 27 Jul 2011, 08:21 PM
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?

5 Answers, 1 is accepted

Sort by
0
Pana
Telerik team
answered on 03 Aug 2011, 10:13 AM
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 >>
0
Michael
Top achievements
Rank 1
answered on 06 Aug 2011, 12:03 AM
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.... 
0
Miroslav Nedyalkov
Telerik team
answered on 10 Aug 2011, 01:39 PM
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 >>

0
Michael
Top achievements
Rank 1
answered on 10 Aug 2011, 05:57 PM
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

0
Miroslav Nedyalkov
Telerik team
answered on 11 Aug 2011, 11:57 AM
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 >>

Tags
Docking
Asked by
Michael
Top achievements
Rank 1
Answers by
Pana
Telerik team
Michael
Top achievements
Rank 1
Miroslav Nedyalkov
Telerik team
Share this question
or