85.导航栏制作 C#例子 WPF例子

第一步:调整主窗口路径

首先,将主窗口的路径移动,在 App.xaml 中更新 StartupUri 的路径,指向新的主窗口位置:


    
         
    

第二步:安装 Prism NuGet 包

安装 Prism 的 NuGet 包,我选择的是 Prism.DryIoc,这是一个轻量级的依赖注入容器,非常适合 MVVM 架构。

第三步:创建 ViewModel 并设置 DataContext

创建一个 ViewModel,并在主窗口的 XAML 中设置其命名空间和 DataContext



    
        
    
    

    

第四步:定义样式

在主窗口的资源部分定义按钮样式,这里是一个具有黑字、白底和绿色背景的按钮样式:

    
        
        
    
第五步:设计导航栏

在主窗口中设计一个导航栏,左侧为导航按钮,右侧为内容区域:

    
        
            
            
        
        
            
        
        
        
            
                
                
                
                
                
                
            
            
第六步:创建子页面

创建三个子页面,将它们的 XAML 类型从 Window 改为 UserControl,同时将后台代码中的 Window 类型也改为 UserControl

第七步:实现 ViewModel 中的命令

在主窗口的 ViewModel 中继承 Prism.Mvvm.BindableBase,并添加切换窗口的命令:

class MainWindowViewModel:BindableBase
{
    private ICommand? _OpenMainBinding;
    public ICommand OpenMainBinding => _OpenMainBinding ??= new DelegateCommand(OpenMain);
    private ICommand? _OpenFullBinding;
    public ICommand OpenFullBinding => _OpenFullBinding ??= new DelegateCommand(OpenFull);
    private ICommand? _OpenEmptyBinding;
    public ICommand OpenEmptyBinding => _OpenEmptyBinding ??= new DelegateCommand(OpenEmpty);

    private object _UsercontrolBinding;
    public object UsercontrolBinding
    {
        get { return _UsercontrolBinding; }
        set { SetProperty(ref _UsercontrolBinding, value); }
    }

    public Main Main = new Main();
    public Full Full = new Full();
    public Empty Empty = new Empty();

    void OpenMain()
    {
        UsercontrolBinding = Main;
    }
    void OpenFull()
    {
        UsercontrolBinding = Full;
    }
    void OpenEmpty()
    {
        UsercontrolBinding = Empty;
    }
}

通过以上步骤,你就可以构建一个基于 MVVM 架构的 WPF 应用程序,实现导航栏的功能,并动态切换不同的子页面。

你可能感兴趣的:(c#,wpf,开发语言)