当前位置: 首页 > news >正文

网站建设学生选课课程设计报告建材建设网站

网站建设学生选课课程设计报告,建材建设网站,网站建设情况怎么写,户外做旅游网站文章目录 1、项目创建2、UI界面布局1. MainWindow.xaml2、颜色转换器实现2.MainViewModel.cs 代码实现 3、运行效果4.源代码下载 1、项目创建 打开 VS2022 ,新建项目 Wpf_Examples,创建各层级文件夹,安装 CommunityToolkit.Mvvm 和 Microsof…

文章目录

  • 1、项目创建
  • 2、UI界面布局
    • 1. MainWindow.xaml
    • 2、颜色转换器实现
    • 2.MainViewModel.cs 代码实现
  • 3、运行效果
  • 4.源代码下载


1、项目创建

打开 VS2022 ,新建项目 Wpf_Examples,创建各层级文件夹,安装 CommunityToolkit.Mvvm 和 Microsoft.Extensions.DependencyInjectio NuGet包,完成MVVM框架搭建。搭建完成后项目层次如下图所示:
在这里插入图片描述
这里如何实现 MVVM 框架可以参考本人 像 MvvmLight 一样使用 CommunityToolkit.Mvvm 工具包 的文章

2、UI界面布局

1. MainWindow.xaml

<Window x:Class="Wpf_Examples.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:converter="clr-namespace:Wpf_Examples.Converters"xmlns:local="clr-namespace:Wpf_Examples"DataContext="{Binding Source={StaticResource Locator},Path=Main}"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Window.Resources><converter:StatusToColorConverter x:Key="StatusToColorConverter"/></Window.Resources><Grid><Grid><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDefinitions><StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Right"><TextBlock Text="网络" FontSize="16" Foreground="DarkGray" Margin="0 0 20 0"/><Ellipse Width="20" Height="20" Fill="{Binding NetStatusValue, Converter={StaticResource StatusToColorConverter}}"/></StackPanel><StackPanel Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center"><TextBlock Text="PLC" FontSize="16" Foreground="DarkGray" Margin="0 0 20 0"/><Ellipse Width="20" Height="20" Fill="{Binding PLCStatusValue, Converter={StaticResource StatusToColorConverter}}"/></StackPanel><StackPanel Grid.Column="2" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left"><TextBlock Text="相机" FontSize="16" Foreground="DarkGray" Margin="0 0 20 0"/><Ellipse Width="20" Height="20" Fill="{Binding DevStatusValue, Converter={StaticResource StatusToColorConverter}}"/></StackPanel></Grid></Grid>
</Window>

界面效果如下:
在这里插入图片描述

2、颜色转换器实现

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Media;namespace Wpf_Examples.Converters
{public class StatusToColorConverter : IValueConverter{public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture){if (value is int statusValue){switch (statusValue){case 0:return Brushes.Red;case 1:return "#E5D21C";case 2:return Brushes.Green;default:return Brushes.Green; // 默认颜色}}return Brushes.Gray;}public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture){throw new NotImplementedException();}}
}

2.MainViewModel.cs 代码实现

代码如下(示例):

using CommunityToolkit.Mvvm.ComponentModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Threading;namespace Wpf_Examples.ViewModels
{public class MainViewModel:ObservableObject{/// <summary>/// 网络状态按钮名称/// </summary>private int netStatusValue = 2;public int NetStatusValue{get { return netStatusValue; }set { SetProperty(ref netStatusValue, value); }}/// <summary>/// PLC状态按钮名称/// </summary>private int plcStatusValue = 1;public int PLCStatusValue{get { return plcStatusValue; }set { SetProperty(ref plcStatusValue, value); }}/// <summary>/// 设备状态/// </summary>private int devStatusValue = 0;public int DevStatusValue{get { return devStatusValue; }set { SetProperty(ref devStatusValue, value); }}public MainViewModel(){CreateTimer();}private void CreateTimer(){#region 每秒定时器服务DispatcherTimer cpuTimer = new DispatcherTimer{Interval = new TimeSpan(0, 0, 0, 3, 0)};cpuTimer.Tick += DispatcherTimer_Tick;cpuTimer.Start();#endregion}private void DispatcherTimer_Tick(object sender, EventArgs e){DevStatusValue=StatusChange(DevStatusValue);NetStatusValue=StatusChange(NetStatusValue);PLCStatusValue=StatusChange(PLCStatusValue);}private int StatusChange(int value){int outVal = 0;//状态变化if (value == 0){outVal = 1;}else if (value == 1){outVal = 2;}else{outVal = 0;}return outVal;}}
}

3、运行效果

在这里插入图片描述

4.源代码下载

CSDN下载链接WPF+MVVM案例实战-设备状态LED灯变化实现

http://www.yayakq.cn/news/74215/

相关文章:

  • 网站制作是怎样做的wordpress 安装七牛
  • 网站建设的技术路线wordpress 命令行
  • 做室内设计兼职的网站微信管理办法
  • aspnet网站开发书微营销课程
  • 一个虚拟主机可以放几个网站保定哪里有做网站的
  • 海洋网站建设公司秦皇岛做网站的公司
  • 花都企业网站建设制作微信公众号网站开发
  • 梦幻创意晋城网站建设新媒体营销是干什么的
  • 网站搭建的流程51源码网
  • dw如何在网站做弹窗无锡祥搜做网站推广
  • 响应式设计网站案例wordpress加入pdf
  • 做影视网站挣钱吗钢管网站建设
  • 做推广用的网站学建设网站
  • 临沂网站建设兼职网页排版设计模板
  • 树莓派做网站服务器西安大雁塔的来历
  • 安丘网站建设什么程序做教育网站好
  • 做网站 技术网站网页切换怎么做的
  • 网站建设摊销大连建设工程信息网专家库
  • 北滘禅城网站建设.net开发微信网站
  • 付费小说网站建设做装修工程找什么网站接单
  • 如何做招聘网站统计表网站开发设计图片
  • 企业网站建设代理公司福州百度快速优化排名
  • 潍坊建设局官方网站上海网站定制公司
  • 网站系统方案设计外部调用wordpress函数
  • 装饰公司网站设计网站开发网页加载很慢怎么办
  • 小型门户网站建设硬件配置wordpress段落间距
  • 动易网站管理壹佰云建站
  • 江苏连云港做网站企业网站建设费如何列支
  • 深圳龙华网站开发wordpress忘记密码
  • 我想注册一个网站怎么注册手机开发者选项是干嘛用的