troubleshooting Question

Silverlight RadWindow Height

Avatar of ANINDYA
ANINDYAFlag for India asked on
.NET ProgrammingC#ASP.NET
3 Comments1 Solution1346 ViewsLast Modified:
Experts
Please see the attached code.
There is a RadWindow which is having a content as TriggerUI.xaml .
this TriggerUI.xaml is open in the RadWindow.
Now my problem is I need to measure the height of the RadWindow  or TriggerUI.
Actually the Height of TriggerUI.xaml is declared as Auto .
But on runtime I need to know the actual height of the TriggerUI or its parents Height ( that is the RadWindow(either of them is needed)
I have tried in the following manner.

1. double y2 = (double) (winAddEditSchedule.Height);
2.double y2 = (double)(triggerUI.Parent as FrameworkElement).Height;
But all are failed.

I need help in this matter.
Thanking you,
Anindya
private void ShowScheduleTaskWindow ( decimal parentIID, ScheduledParentType parentType, string parentDescription )
        {
            GeneralTransform mdiTransform = this.TransformToVisual ( Application.Current.RootVisual );
            Point pntMdi = mdiTransform.Transform ( new Point ( 0, 0 ) );
            double y1 = pntMdi.Y;
            //MessageBox.Show(y1.ToString());
            if ( !Globals.AllowMultipleSchedules )
            {
                TriggerUI triggerUI = new TriggerUI ( parentIID, parentType, parentDescription );
                

                RadWindow winAddEditSchedule = new RadWindow ( );
                double y2 = (double) (winAddEditSchedule.Height);
                if ((y1 + y2) > Globals.VisibleScreenHeight)
                {
                    pntMdi.Y = y1 - ((y1 + y2) - Globals.VisibleScreenHeight) - 150;
                }
                winAddEditSchedule.Content = triggerUI;
                winAddEditSchedule.Header = "Create / Edit Schedule";
                winAddEditSchedule.Width = 425;
                winAddEditSchedule.Left = pntMdi.X + 23;



//the full function is here
private void ShowScheduleTaskWindow ( decimal parentIID, ScheduledParentType parentType, string parentDescription )
        {
            GeneralTransform mdiTransform = this.TransformToVisual ( Application.Current.RootVisual );
            Point pntMdi = mdiTransform.Transform ( new Point ( 0, 0 ) );
            double y1 = pntMdi.Y;
            //MessageBox.Show(y1.ToString());
            if ( !Globals.AllowMultipleSchedules )
            {
                TriggerUI triggerUI = new TriggerUI ( parentIID, parentType, parentDescription );
                

                RadWindow winAddEditSchedule = new RadWindow ( );
                double y2 = (double)(triggerUI.Parent as FrameworkElement).Height;
                if ((y1 + y2) > Globals.VisibleScreenHeight)
                {
                    pntMdi.Y = y1 - ((y1 + y2) - Globals.VisibleScreenHeight) - 150;
                }
                winAddEditSchedule.Content = triggerUI;
                winAddEditSchedule.Header = "Create / Edit Schedule";
                winAddEditSchedule.Width = 425;
                winAddEditSchedule.Left = pntMdi.X + 23;
                if ( ( pntMdi.Y + triggerUI.Height ) > Application.Current.RootVisual.RenderSize.Height )
                {
                    double diff = ( pntMdi.Y + triggerUI.Height ) - Application.Current.RootVisual.RenderSize.Height;
                    winAddEditSchedule.Top = pntMdi.Y - ( diff + 20 );
                }
                else
                {
                    winAddEditSchedule.Top = pntMdi.Y;
                }
                winAddEditSchedule.Margin = this.Margin;
                winAddEditSchedule.BorderThickness = new Thickness ( -22, -22, -22, -22 );

                winAddEditSchedule.ResizeMode = ResizeMode.NoResize;
                winAddEditSchedule.Closed += new EventHandler<WindowClosedEventArgs> ( winAddEditSchedule_Closed );
                triggerUI.OnScheduleDeleted += new EventHandler ( triggerUI_OnScheduleDeleted );
                triggerUI.OnScheduleSaved += new EventHandler ( triggerUI_OnScheduleSaved );
                winAddEditSchedule.ShowDialog ( );
            }
            else
            {
                SearchScheduleTaskUI taskScheduleUI = new SearchScheduleTaskUI ( parentIID, parentType );
                RadWindow winSearchSchedule = new RadWindow ( );
                winSearchSchedule.Content = taskScheduleUI;
                winSearchSchedule.Header = "Create Schedule";
                winSearchSchedule.Width = 670;
                winSearchSchedule.WindowStartupLocation = Telerik.Windows.Controls.WindowStartupLocation.CenterOwner;
                winSearchSchedule.BorderBackground = new SolidColorBrush ( Color.FromArgb ( 0xFF, 0x3C, 0x59, 0x07 ) );
                winSearchSchedule.ResizeMode = ResizeMode.NoResize;
                winSearchSchedule.ShowDialog ( );
            }
        }
ASKER CERTIFIED SOLUTION
Gewgala

Our community of experts have been thoroughly vetted for their expertise and industry experience.

Join our community to see this answer!
Unlock 1 Answer and 3 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 3 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros