Skip to content

JadePureOne/com.myxmu.SCADASystem

Repository files navigation

WPF 框架搭建


1. Nuget 包安装


  • CommunityToolkit.MVVM
  • Microsoft.Extensions.DependencyInjection
  • MaterialDesignThemes
  • MaterialDesignThemes.MahApps
  • Masuit.Tools.Core https://www.masuit.tools/api.html-Db
  • Microsoft.Extensions.Configuration-Db 层
  • Microsoft.Extensions.Configuration.Json-Db 层
  • Microsoft.Extensions.Configuration.Binder - Db 层
  • Microsoft.Extensions.Options - Db 层
  • SqlSugarCore-Db 层
  • NLog.Extensions.Logging-Db 层
  • manual ref FastReport DLL
  • FastReport.Compat(2024-02-15)
  • FastReport.DataVis(2024-02-15)
  • 关于 MaterialDesignThemes 使用可以直接参考课件资料下的 Demo,官网链接 https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit

2. 框架预准备


  1. 删除 MainWindow.xaml,App.xaml 中 StartUri 也删除
  2. 创建三层架构 Views ViewModels Models
  3. 在 Views 中创建 MainView.xaml,ViewModels 创建 MainViewModel.cs,MainViewModel 继承自 ObservableObject
  4. MaterialDesign 主题包使用
  5. MainView.xaml 常用配置,设置窗体导航,方便能够点出 ViewModel.xxx,加上 d:DataContext="{d:DesignInstance vm:ShellViewModel}"并设置一些字体属性
  6. 改造 App.xaml.cs 文件将依赖注入开启(microsoft 推荐写法
  7. 设置窗体内部弹出对话框要用到的组件,里面嵌入一个 ContentControl 可以填充其他窗体。

3 搭建数据库交互层


  1. 创建 TulingScadaSystem.Db 类库项目,安装 Nuget 包:
    • CommunityToolkit.Mvvm
    • SqlSugarCore
  2. 创建 Helpers-SqlSugarHelper.cs 类

FastReport


Binding DataSource


json2csv toolkit:https://www.bejson.com/json/json2excel/, separate choose ; ,after download edit extension

image-20250109085943975

image-20250109090102118

image-20250109090124281

Binding column


double click header title, select corresponding value

image-20250109090333513

Tips


image-20250109090624638

fill data

image-20250109090734836

CodeSnape


Xaml's UI,style,Ref...

xmlns:vm="clr-namespace:TulingScadaSystem.ViewModels"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
d:DataContext="{d:DesignInstance vm:MainViewModel}" d:DesignHeight="800"
d:DesignWidth="1200" Background="{DynamicResource
MaterialDesign.Brush.Background}" FontFamily="Microsoft YaHei" FontSize="16"
TextElement.FontSize="16" TextElement.FontWeight="Regular"
TextElement.Foreground="{DynamicResource MaterialDesignBody}"

图标文字 Template

<StackPanel Margin="10" HorizontalAlignment="Center" Orientation="Horizontal">
  <materialDesign:PackIcon
    Width="50"
    Height="50"
    Margin="5"
    VerticalAlignment="Center"
    Foreground="#1b2755"
    Kind="ChartScatterPlotHexbin"
  />
  <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"
  FontSize="40" Foreground="#1b2755" Style="{StaticResource
  MaterialDesignTitleSmallTextBlock}"
</StackPanel>

behavior

<i:Interaction.Triggers>
  <i:EventTrigger EventName="PreviewMouseUp">
    <i:InvokeCommandAction
      Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Path=DataContext.NavigationCommand}"
      CommandParameter="{Binding}"
    />
  </i:EventTrigger>
</i:Interaction.Triggers>

About

c# project tutor

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages