当前位置: 首页>>代码示例>>C#>>正文


C# TreeView.GetVisualDescendents方法代码示例

本文整理汇总了C#中TreeView.GetVisualDescendents方法的典型用法代码示例。如果您正苦于以下问题:C# TreeView.GetVisualDescendents方法的具体用法?C# TreeView.GetVisualDescendents怎么用?C# TreeView.GetVisualDescendents使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TreeView的用法示例。


在下文中一共展示了TreeView.GetVisualDescendents方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ScrollingIntoViewIncludesTopOfTreeViewItem

        public virtual void ScrollingIntoViewIncludesTopOfTreeViewItem()
        {
            TreeView view = new TreeView { Height = 100 };
            TreeViewItem first = new TreeViewItem { Header = 1 };
            TreeViewItem last = new TreeViewItem { Header = 10 };
            view.Items.Add(first);
            view.Items.Add(2);
            view.Items.Add(3);
            view.Items.Add(4);
            view.Items.Add(5);
            view.Items.Add(6);
            view.Items.Add(7);
            view.Items.Add(8);
            view.Items.Add(9);
            view.Items.Add(last);
            ScrollViewer scroller = null;
            Panel host = null;

            Action<TreeViewItem, string> assertInView = (item, name) =>
                {
                    GeneralTransform transform = item.TransformToVisual(host);
                    Rect itemRect = new Rect(
                        transform.Transform(new Point()),
                        transform.Transform(new Point(item.ActualWidth, item.ActualHeight)));
                    double itemTop = itemRect.Top;
                    double itemBottom = itemRect.Bottom;
                    
                    double pageTop = scroller.VerticalOffset;
                    double pageBottom = pageTop + scroller.ViewportHeight;

                    Assert.IsTrue(itemTop >= pageTop && itemTop <= pageBottom, "Top of item '{0}' at {1} is not scrolled into view (0, {2})!", name, itemTop, pageBottom);
                    Assert.IsTrue(itemBottom >= pageTop && itemBottom <= pageBottom, "Bottom of item '{0}' at {1} is not scrolled into view (0, {2})!", name, itemTop, pageBottom);
                };

            double bottomOffset = 0.0;
            TestAsync(
                25,
                view,
                () => scroller = view.GetVisualDescendents().OfType<ScrollViewer>().FirstOrDefault(),
                () => Assert.IsNotNull(scroller, "scroller should not be null!"),
                () => host = view.GetVisualDescendents().OfType<StackPanel>().FirstOrDefault(),
                () => Assert.IsNotNull(host, "host should not be null!"),
                () => last.IsSelected = true,
                () => bottomOffset = scroller.VerticalOffset,
                () => Assert.AreNotEqual(0, bottomOffset, "ScrollViewer did not scroll to include last element!"),
                () => assertInView(last, "Last"),
                () => first.IsSelected = true,
                () => Assert.AreNotEqual(bottomOffset, scroller.VerticalOffset, "ScrollViewer did not return to first element!"),
                () => assertInView(first, "First"));
        }
开发者ID:kvervo,项目名称:HorizontalLoopingSelector,代码行数:50,代码来源:TreeViewTest.cs

示例2: FocusingTreeViewShouldNotScroll

        public virtual void FocusingTreeViewShouldNotScroll()
        {
            TreeView view = new TreeView
            {
                ItemsSource = new[] { 1, 2, 3, 4, 5, 6 },
                Height = 100
            };
            ScrollViewer scroller = null;

            TestAsync(
                25,
                view,
                () => scroller = view.GetVisualDescendents().OfType<ScrollViewer>().FirstOrDefault(),
                () => Assert.IsNotNull(scroller, "scroller should not be null!"),
                () => Assert.AreEqual(0, scroller.VerticalOffset, "Should not be scrolled initially!"),
                () => scroller.ScrollToVerticalOffset(25),
                () => view.Focus(),
                () => Assert.AreEqual(25, scroller.VerticalOffset, "Should not have scrolled after focusing!"));
        }
开发者ID:kvervo,项目名称:HorizontalLoopingSelector,代码行数:19,代码来源:TreeViewTest.cs

示例3: OnlyUserInitiatedExpansionScrollsTreeView

        public virtual void OnlyUserInitiatedExpansionScrollsTreeView()
        {
            TreeView view = new TreeView { Height = 100 };
            view.Items.Add(1);
            view.Items.Add(2);
            view.Items.Add(3);
            view.Items.Add(4);
            view.Items.Add(5);
            view.Items.Add(6);
            view.Items.Add(7);
            view.Items.Add(new TreeViewItem { Header = 8, IsExpanded = true, ItemsSource = new[] { 9, 10 } });
            ScrollViewer scroller = null;

            TestAsync(
                25,
                view,
                () => scroller = view.GetVisualDescendents().OfType<ScrollViewer>().FirstOrDefault(),
                () => Assert.IsNotNull(scroller, "scroller should not be null!"),
                () => Assert.AreEqual(0, scroller.VerticalOffset, "Should not be scrolled initially!"));
        }
开发者ID:kvervo,项目名称:HorizontalLoopingSelector,代码行数:20,代码来源:TreeViewTest.cs

示例4: TreeViewItemPeerScroll

 public virtual void TreeViewItemPeerScroll()
 {
     TreeView view = new TreeView { Height = 20, ItemsSource = new int[] { 1, 2, 3, 4, 5 } };
     TreeViewItem item = null;
     TreeViewItemAutomationPeer peer = null;
     IScrollItemProvider provider = null;
     TestAsync(
         5,
         view,
         () => item = view.ItemContainerGenerator.ContainerFromIndex(4) as TreeViewItem,
         () => peer = FrameworkElementAutomationPeer.CreatePeerForElement(item) as TreeViewItemAutomationPeer,
         () => provider = peer.GetPattern(PatternInterface.ScrollItem) as IScrollItemProvider,
         () => provider.ScrollIntoView(),
         () =>
         {
             foreach (DependencyObject obj in view.GetVisualDescendents())
             {
                 ScrollViewer viewer = obj as ScrollViewer;
                 if (viewer != null)
                 {
                     Assert.AreNotEqual(0, viewer.VerticalOffset, "ScrollHost was not scrolled!");
                     return;
                 }
             }
             Assert.Fail("Did not find the ScrollHost!");
         });
 }
开发者ID:kvervo,项目名称:HorizontalLoopingSelector,代码行数:27,代码来源:TreeViewItemAutomationPeerTest.cs


注:本文中的TreeView.GetVisualDescendents方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。