zoukankan      html  css  js  c++  java
  • silverlight 动态加载树形菜单[带图标],方法一

    silverlight 动态加载树形菜单[带图标],方法一

     

    上代码了......

    页面代码:

    自定义样式:

     MouseLeftButtonUp事件是我用于末级子节点的点击事件(连续点击)自定义的,因为silverlight的tree没有点击事件,当然你可以使用treeViewItem的Selected事件处理,个人感觉比较麻烦。

    个人习惯不同,自己选择处理方式。

        <UserControl.Resources>
            <common:HierarchicalDataTemplate x:Key="Level3Template">
                <StackPanel Orientation="Horizontal">
                    <Image Source="{Binding Icon}" Width="16" Height="16"/>
                    <TextBlock Text="{Binding Name}"  Foreground="Black" MouseLeftButtonUp="TextBlock_MouseLeftButtonUp"/>
                </StackPanel>
            </common:HierarchicalDataTemplate>
            <common:HierarchicalDataTemplate x:Key="Level2Template" ItemsSource="{Binding Level3s}" ItemTemplate="{StaticResource Level3Template}">
                <StackPanel Orientation="Horizontal">
                    <Image Source="{Binding Icon}" Width="16" Height="16"/>
                    <TextBlock Text="{Binding Name}" Foreground="Green"/>
                </StackPanel>
            </common:HierarchicalDataTemplate>
            <common:HierarchicalDataTemplate x:Key="Level1Template" ItemsSource="{Binding Level2s}" ItemTemplate="{StaticResource Level2Template}">
                <TextBlock Foreground="Blue"/>
            </common:HierarchicalDataTemplate>
        </UserControl.Resources>

    tree目录:

    我这里只放了个根节点

    <Grid Grid.Column="0" Grid.Row="0" VerticalAlignment="Stretch">
                        <controls:TreeView x:Name="myTree" BorderBrush="White"   ItemTemplate="{StaticResource Level1Template}">
                            <controls:TreeViewItem x:Name="treeItem" Header="XXX管理系统" Foreground="Blue" IsExpanded="True" ItemTemplate="{StaticResource Level2Template}">
                            </controls:TreeViewItem>
                        </controls:TreeView>
                    </Grid>

    后台代码:

    自定义类:

        #region 自定义类
        public class Level1
        {
            public Level1()
            {
                Level2s = new ObservableCollection<Level2>();
            }

            public string Name { get; set; }
            public ObservableCollection<Level2> Level2s { get; set; }
        }

        public class Level2
        {
            public Level2()
            {
                Level3s = new ObservableCollection<Level3>();
            }

            public string Name { get; set; }
            public string Icon { get; set; }
            public ObservableCollection<Level3> Level3s { get; set; }
        }

        public class Level3
        {
            public string Name { get; set; }
            public string Icon { get; set; }
            //public event EventHandler click;
        }
        #endregion

    加载树形:

    /// <summary>
            /// 初始化目录数据
            /// </summary>
            private void InitTreeData()
            {

                treeItem.ItemsSource = new ObservableCollection<Level2> {
                    new Level2
                      {
                        Name="基础信息", Icon = "../ICON/project.png",
                        Level3s = {
                            new Level3 { Name = "类别" ,Icon = "../ICON/sf.png"},
                            new Level3 { Name = "部门" ,Icon = "../ICON/app.png"},
                            new Level3 { Name = "类别2" ,Icon = "../ICON/contractType.png"},
                            new Level3 { Name = "部门2" ,Icon = "../ICON/post_to_blog.png"}
                        }
                      },
                      new Level2
                      {
                        Name="报表管理", Icon = "../ICON/report.png",
                        Level3s = {
                            new Level3 { Name = "报表1" ,Icon = "../ICON/tabs.png"},
                            new Level3 { Name = "报表2" ,Icon = "../ICON/table49.png"},
                            new Level3 { Name = "报表3" ,Icon = "../ICON/table48.png"},
                            new Level3 { Name = "报表4",Icon="../ICON/report.png"}
                        }
                      },
                      new Level2
                      {
                        Name="系统管理",Icon = "../ICON/set.png",
                        Level3s = {
                            new Level3 { Name = "权限设置" ,Icon = "../ICON/tick.png"},
                            new Level3 { Name = "用户管理" , Icon = "../ICON/users.png"}
                        }
                      }
                };

          }

    加载菜单(tree)的方式很多,在这里我只提到了这一种,仅供参考!

     附件 :

     /Files/northstar/Silverlight树形菜单带图标.rar

  • 相关阅读:
    【react native】有关入坑3个月RN的心路历程
    【react-native】持续踩坑总结
    【react native】rn踩坑实践——从输入框“们”开始
    【CSS】少年,你想拥有写轮眼么?
    【杂谈】小记一个ios11的bug
    基于MATLAB&摄像头的实时目标跟踪
    WebRTC 音频模块单独编译 --【转载】
    高斯分布--转载
    win 7 64位 下 VMware Ubantu 14.04 设置共享文件夹失败
    GMM算法
  • 原文地址:https://www.cnblogs.com/northstar/p/1988530.html
Copyright © 2011-2022 走看看