此篇文章和上一篇文章wpf中开发独立模块功能和左侧1个菜单的框架演示-CSDN博客的结构是一样的,有1点不同的是,左侧有2层菜单,所以,就会更加的复杂。建议,先看明白上一篇的内容,再看这篇文章,否则可能有点难度。
其余的功能开发模式和团队分工管理都和上一篇文章是一样的,在此就不再叙述了。 现在就解释一下下面的图的意思。
其中“功能123”菜单栏包含了“功能1”,“功能2”,“功能3”,而“功能1”就是WpfControlLibrary1项目,“功能2”就是WpfControlLibrary2项目,“功能3”就是WpfControlLibrary3项目。
依次类推,“功能456”菜单栏包含了“功能4”,“功能5”,“功能6”,“功能4”就是UserControl4界面,“功能5”就是UserControl5界面,“功能6”就是UserControl6界面,这里我们使用了UC界面,而不是项目了,当然也可以使用项目的,只是为了区分一下。此时就相当于 UserControl4到UserControl9界面是框架里面的内容了,由HCDemo这个项目的人,全部负责,与WpfControlLibrary1项目是有区别的,需要注意一下。
同“功能456”所示,“功能789”菜单栏包含了“功能7”,“功能8”,“功能9”,“功能7”就是UserControl7界面,“功能8”就是UserControl8界面,“功能9”就是UserControl9界面。
对于2层菜单的设计说明:
首先把界面分成3部分,左1是“蓝色部分”,中间是具体的菜单栏,右侧是菜单栏呈现的最终效果。
代码如下:
<ListBox Name="lstMenu" Grid.Column="0" BorderThickness="0" Style="{ x:Null}" Background="#409EFF" ItemContainerStyle="{StaticResource CustomLstMenuItemContainerStyle}" SelectionChanged="lstMenu_SelectionChanged" >
<ListBoxItem Tag="功能123" Cursor="Hand" >
<StackPanel Width="auto" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,0,0,15" >
<Image Source="/imgs/1.png" Width="40" Height="40" />
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,5,0,0">
<TextBlock Text="功能123" Style="{StaticResource CustomTextBlockStyle}"/>
</StackPanel>
</StackPanel>
</ListBoxItem>
<ListBoxItem Tag="功能456" Cursor="Hand" >
<StackPanel Width="auto" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,0,0,15" >
<Image Source="/imgs/2.png" Width="40" Height="40" />
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,5,0,0">
<TextBlock Text="功能456" Style="{StaticResource CustomTextBlockStyle}"/>
</StackPanel>
</StackPanel>
</ListBoxItem>
<ListBoxItem Tag="功能789" Cursor="Hand" >
<StackPanel Width="auto" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,0,0,15" >
<Image Source="/imgs/3.png" Width="40" Height="40" />
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,5,0,0">
<TextBlock Text="功能789" Style="{StaticResource CustomTextBlockStyle}"/>
</StackPanel>
</StackPanel>
</ListBoxItem>
</ListBox>
<ListBox x:Name="lstDetails" Grid.Column="1" BorderThickness="0" Style="{ x:Null}" Background="#F5F5F5" ItemContainerStyle="{StaticResource CustomItemContainerStyle}" SelectionChanged="lstDetails_SelectionChanged" />
<hc:TabControl Name="tabMenu" Grid.Column="2" IsAnimationEnabled="True" IsDraggable="True" ShowCloseButton="True" OverflowMenuDisplayMemberPath="Header"/>
lstMenu控件只是一个功能1,功能2,功能3的总标识, lstDetails控件是具体的功能1,所以这里是动态增加的,而tabMenu是TabControl,菜单栏不停地向里面增加界面,所以也是动态增加的。这里最核心的就是,菜单是动态的,所以,不管增加多少个都是可以的,在对应的功能里面写代码即可。
对于此软件的目录结构来说,与上一篇是一样的。
Libs文件夹同级别的,是整个软件框架的资源
Libs里面的dll,都是各个业务的功能模块
对于整个软件的目录设计来说,清晰明了,后期我们可以对于相应的dll进行独立升级或者替换,而不需要每次都复制一大堆文件给用户了,定量定点的去解决问题,提高效率。
最终效果:
当需要左侧有1个菜单栏的时候,请参考:
wpf中开发独立模块功能和左侧1个菜单的框架演示-CSDN博客
本文运行的程序(带环境):
https://download.csdn.net/download/u012563853/89591412
本文源码:
https://download.csdn.net/download/u012563853/89591744
本文来源:
wpf中团队独立开发模块和左侧2个菜单的框架演示-CSDN博客