コード例 #1
0
        private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
        {
            if (MyMainPage.floatChatReal == null)
            {
                MyMainPage.initializeFloatChat();
            }

            System.Windows.Media.GeneralTransform gt = lstTraditionalHost.TransformToVisual(Application.Current.RootVisual);
            Point offset = gt.Transform(new Point(lstTraditionalHost.Width + 30, 0));

            MyMainPage.floatChatReal.Position = offset;

            MyMainPage.refreshFloatChat(lstTraditionalHost.ActualHeight / 1.5, lstTraditionalHost.ActualHeight);
        }
コード例 #2
0
        /// <summary>
        /// Scrolls and item into view.
        /// </summary>
        /// <param name="item">The item to scroll into view.</param>
        public void ScrollIntoView(object item)
        {
            if (this.scrollViewer != null && this.containersByItem.ContainsKey(item))
            {
                MatchingTermItemContainer container = this.containersByItem[item];
                if (System.Windows.Media.VisualTreeHelper.GetParent(container) != null)
                {
                    System.Windows.Media.GeneralTransform transform = container.TransformToVisual(this.scrollViewer);
                    double verticalOffset = transform.Transform(new Point(0, 0)).Y;

                    if (verticalOffset + container.ActualHeight > this.scrollViewer.ViewportHeight)
                    {
                        this.scrollViewer.ScrollToVerticalOffset(this.scrollViewer.VerticalOffset + (verticalOffset - this.scrollViewer.ViewportHeight) + container.ActualHeight);
                    }
                    else if (verticalOffset < 0)
                    {
                        this.scrollViewer.ScrollToVerticalOffset(this.scrollViewer.VerticalOffset + verticalOffset);
                    }
                }
            }
        }