工具栏在企业应用系统中是比较常见的导航工具。XCenter中的工具栏写的并不精彩,这里只是抛砖引玉。欢迎大家有更好的解决方案时与我讨论。
  XCenter中的工具栏又两个位于XCenter.Framework.Client.Controls命名空间中的UserControl实现:ToolBar.xaml,ToolbarButton.xaml。ToolbarButton是工具栏上的按钮,ToolBar是容器。
  先看看界面效果:
Silverlight实现查询建模(七) 工具栏的实现与加载 
Silverlight实现查询建模(七) 工具栏的实现与加载
ToolbarButton XAML代码如下:

  可以看到ToolbarButton继承自Button类,界面上除了动画资源外就只有一个Image控件用于显示图标。xaml.cs代码就不贴了主要就是鼠标的Leave和Enter事件,用定义好的动画实现图标的放大和还原。

  下面看看Toolbar的xaml代码。

>

  Toolbar的代码更简单了,就是一个StackPanel作为ToolbarButton的容器。主要逻辑其实就是取得一个唯一的Id用于判断ToolBar是否已被加载。
  下面我们看看使用方法。关于Toolbar的加载我定义了一个接口,
 

    }

  要添加Toolbar功能的页面(UserControl)要实现这个接口。由于我的主界面位于XCenter.UI的Page类,而Page类类似一个Frame,当单击左边的Tree菜单时在TabControl中通过反射加载指定模块的主界面实例。加载实例时可以调用IToolbarable中的方法:

                tabItem.Content = uc;
                
//添加工具栏
                if (uc is IToobarable)
                {
                    AddToolBar(uc);
                }

 

        }

   可以看到此处的ToobarId用于判断工具栏是否已经被加载。
   至于Toolbar中的Button的是否可用,就是简单循环Toobar中的ToolbarButton并设置Enable。这在Toobar中的Button不多的情况下没有问题。多了这个办法就不行了。

相关文章:

  • 2021-07-30
  • 2022-12-23
  • 2021-09-27
  • 2021-09-11
  • 2022-01-28
  • 2021-07-06
  • 2021-06-24
猜你喜欢
  • 2022-12-23
  • 2022-01-07
  • 2021-12-15
  • 2021-11-23
  • 2021-07-03
  • 2022-02-09
  • 2021-09-28
相关资源
相似解决方案