首先说一下我想要实现的效果。
我希望在左侧的导航点击了以后右侧的主体部分发声变化。
之前我在LeftNav模块用的控件是ToggleButton并为其制作了样式。本来想的是自己根据 ToggleButton作为基础自己在做一个复合控件出来。不过这里做导航的话,ListBox会更加的 适合些。ListBox的样式制作和之前的ToggleButton样式制作大同小异,都是一个原则:各个 VisualStateGroup中的视图状态是可以共存的,VisualStateGroup内部的视图状态只能同时 出现一个,尽量不要在多个VisualStateGroup同时改变同一个元素的属性。
下来导航模块“LeftNav”需要从外部加载导航配置文件文件"Nav.xml",将其获得的数据 解析并于ListBox做数据绑定。要完成上诉的工作就需要引入Services模块,将各个功能分离 开、各司其职。
Nav.xml:
1 <?xml version="1.0" encoding="utf-8" ?>
2 <root>
3 <module showname="Hello Prism" xapname="OperatingTableTestModule" ViewType="OperatingTableTestModule.Views.HelloPrismView, OperatingTableTestModule, Version=1.0.0.0" />
4 <module showname="欢迎" xapname="OTWelcomeModule" ViewType="OTWelcomeModule.Views.OTWelcomeView, OTWelcomeModule, Version=1.0.0.0" />
5 <module showname="CGArt" xapname="OTCGArtModule" ViewType="OT.SL.CGArt2010.Style.Issue._31.Views.OTCGArtView, OT.SL.CGArt2010.Style.Issue.31, Version=1.0.0.0" />
6 <module showname="妄摄写真" xapname="OTMosatsu" ViewType="OTMosatsu.Views.OTMosatsuView, OTMosatsu, Version=1.0.0.0" />
7 </root>
这里先定义一个导航的实体类,“LdModule”
01 namespace OTLeftNavModule.Entities
02 {
03 public class LdModule
04 {
05 //显示名称
06 public string showname { get; set; }
07 //View类别
08 public string ViewType { get; set; }
09 //Module的名称
10 public string xapname { get; set; }
11 }
12 }