C# MaterialDesign抽屉式风格
本案例主要是使用MaterialDesign Wpf库结合Prism框架进行编写
<materialDesign:DrawerHost><materialDesign:DrawerHost.Style><Style BasedOn="{StaticResource {x:Type materialDesign:DrawerHost}}" TargetType="materialDesign:DrawerHost"><Style.Triggers><DataTrigger Binding="{Binding IsChecked, ElementName=BackgroundToggle}" Value="True"><Setter Property="OverlayBackground" Value="{DynamicResource PrimaryHueMidBrush}" /></DataTrigger></Style.Triggers></Style></materialDesign:DrawerHost.Style><materialDesign:DrawerHost.LeftDrawerContent><TreeView Width="200"><TreeView x:Name="TreeView" ItemsSource="{Binding Pages}"><TreeView.Resources><HierarchicalDataTemplate DataType="{x:Type tables:PageModel}" ItemsSource="{Binding Children}"><StackPanel Orientation="Horizontal"><TextBlock Text="{Binding NAME}" /></StackPanel></HierarchicalDataTemplate></TreeView.Resources><behaviors:Interaction.Triggers><behaviors:EventTrigger EventName="SelectedItemChanged"><behaviors:InvokeCommandAction Command="{Binding Path=SelectedItemChangedCommand}" CommandParameter="{Binding ElementName=TreeView, Path=SelectedItem}" /></behaviors:EventTrigger></behaviors:Interaction.Triggers></TreeView></TreeView></materialDesign:DrawerHost.LeftDrawerContent><Grid><ContentControl prism:RegionManager.RegionName="ContentRegion" /><ButtonWidth="25"Height="25"HorizontalAlignment="Left"Command="{x:Static materialDesign:DrawerHost.OpenDrawerCommand}"CommandParameter="{x:Static Dock.Left}"Style="{StaticResource MaterialDesignFloatingActionMiniLightButton}"ToolTip="MaterialDesignFloatingActionMiniLightButton"><materialDesign:PackIcon Kind="ArrowLeft" /></Button></Grid></materialDesign:DrawerHost>