wpf_可视树

wpf_可视树

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术: Visual Studio 2015 * SQL Server

作者:

撰写时间:2019年07月17日

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

可视树是由界面上可见的元素构成的,这些元素主要是由从Visual或者Visual3D类中派生出来的类。可视树遍历使用VisualTreeHelper类。

 

 <Grid>

        <DockPanel>

            <Button DockPanel.Dock="Top" Click="Button_Click" Content="获取逻辑树和可视树"></Button>

            <Grid>

                <Grid.ColumnDefinitions>

                    <ColumnDefinition></ColumnDefinition>

                    <ColumnDefinition></ColumnDefinition>

                </Grid.ColumnDefinitions>

                <DockPanel Grid.Column="1">

                    <TextBlock DockPanel.Dock="Top" Text="可视树"></TextBlock>

                    <TreeView Name="tvVisualTree"></TreeView>

                </DockPanel>

            </Grid>

        </DockPanel> 

</Grid>

 

//获取可视树

static string GetTypeDescription(object obj)

        {

            return obj.GetType().FullName;

        }

        private void Button_Click(object sender, RoutedEventArgs e)

        {

            //this.tvLogicTree.Items.Add(GetLogicTree(this));

            this.tvVisualTree.Items.Add(GetVisualTree(this));

        }

 public static TreeViewItem GetVisualTree(DependencyObject obj)

        {

            if (obj == null)

            {

                return null;

            }

 

            TreeViewItem treeItem = new TreeViewItem { Header = GetTypeDescription(obj), IsEnabled = true };

 

            for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)

            {

                var chlid = VisualTreeHelper.GetChild(obj, i);

                var item = GetVisualTree(chlid);

                if (item != null)

                {

                    treeItem.Items.Add(item);

                }

            }

            return treeItem;

        }

       

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值