目录
下载地址 :练习: 1 2 3 1 2 3 1 2 3https://gitee.com/gyk159/practice.git
一:创建项目
该项目为wpf程序
这里选WPF应用程序,同时点击下一步
注意项目存放位置 项目名字然后点击下一步然后等待项目加载,之后就可以着手项目的编写了
二引入依赖项以及创建文件夹
1.这里是项目所需要的文件夹以及引用的包
点击安装 这样就可以引用对应的包了
2.这里是效果展示
3.mainwindow前后台代码
这里是对页面的区域进行切割同时放入对应的控件。
<Window x:Class="test1.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:local="clr-namespace:test1"
mc:Ignorable="d"
Title="这是一个学习的项目" Height="700" Width="1150" Name="Window"
WindowStartupLocation="CenterScreen"
FontFamily="微软雅黑"
FontSize="12" FontWeight="ExtraLight" Background="Transparent">
<WindowChrome.WindowChrome>
<WindowChrome GlassFrameThickness="-1"/>
</WindowChrome.WindowChrome>
<!--这是对缩放关闭按钮的样式重写 也可以在App.xaml里写-->
<!--<Window.Resources>
<Style TargetType="Button" x:Name="ControlButtonStyle">
<Setter Property="Width" Value="40"/>
<Setter Property="Background" Value="#11ffffff"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontFamily" Value="Assets/Fonts/#iconfont"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid Background="{TemplateBinding Background}">
<Border Name="root">
<ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="root" Property="Background" Value="#33ffffff"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>-->
<Grid>
<Grid.Background>
<RadialGradientBrush>
<GradientStop Color="#FF285173" Offset="0"/>
<GradientStop Color="#FF244967" Offset="0.3"/>
<GradientStop Color="#FF14273A" Offset="1"/>
</RadialGradientBrush>
</Grid.Background>
<Grid.RowDefinitions>
<RowDefinition Height="45"/>
<RowDefinition/>
<RowDefinition Height="20"/>
</Grid.RowDefinitions>
<!--标题部分-->
<Border Grid.Row="0" Background="#5518AABD" BorderThickness="0,0,0,1">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="auto"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Image Source="Assets/Images/Logo.png" Margin="10" Grid.Column="0"/>
<StackPanel Grid.Column="1" VerticalAlignment="Center">
<TextBlock Text="{Binding Title,ElementName=Window}"
Foreground="White"
FontSize="16"/>
<!--RelativeSource={RelativeSource AncestorType=Window} 上面没命名的话 否则ElementName=Window-->
<TextBlock Text="随便写点什么"
Foreground="LightGray"
FontSize="9" Margin="0,2,0,0"
HorizontalAlignment="Center"/>
</StackPanel>
<Grid Grid.Column="2">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="13"/>
</Grid.RowDefinitions>
<Border HorizontalAlignment="Right" WindowChrome.IsHitTestVisibleInChrome="True"
Background="Transparent"
Width="200">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<Button Width="40" Content="" Style="{StaticResource ControlButtonStyle}"/>
<Button Width="40" Content="" Style="{StaticResource ControlButtonStyle}"/>
<Button Width="40" Content="" Style="{StaticResource ControlButtonStyle}"
Background="DarkRed" Click="Button_Click"/>
</StackPanel>
</Border>
<Border Grid.Row="1" BorderBrush="#5518AABD" BorderThickness="0,1,0,0"/>
<Border Grid.Row="1" Margin="0,3,0,2">
<Border.Background>
<VisualBrush TileMode="Tile" Viewport="0,0,7,7" ViewportUnits="Absolute">
<VisualBrush.Visual>
<Grid Width="20" Height="20" >
<Line X1="0" Y1="10" X2="10" Y2="0" Stroke="Gray"
StrokeThickness="1"/>
</Grid>
</VisualBrush.Visual>
</VisualBrush>
</Border.Background>
</Border>
</Grid>
</Grid>
</Border>
<!--内容部分-->
<ContentControl Grid.Row="1" Content="{Binding PageContant}"/>
<!--状态栏部分-->
<Border Grid.Row="2" BorderBrush="#5518AABD" BorderThickness="0,1,0,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<Border Margin="0,5">
<Border.Background>
<VisualBrush TileMode="Tile" Viewport="0,0,7,7" ViewportUnits="Absolute">
<VisualBrush.Visual>
<Grid Width="20" Height="20">
<Line X1="0" Y1="10" X2="10" Y2="0" Stroke="Gray" StrokeThickness="1"/>
</Grid>
</VisualBrush.Visual>
</VisualBrush>
</Border.Background>
</Border>
<TextBlock Grid.Column="1" Text="随便写点什么"
Foreground="DarkRed" VerticalAlignment="Center"
FontSize="11" FontWeight="Bold" Margin="10,1"/>
</Grid>
</Border>
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using test1.Base;
using test1.ViewModels;
using test1.Views;
namespace test1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
MainViewModel mainViewModel=new MainViewModel();
public Command DetailCommand { get; set; }
public Command GoBackCommand { get; set; }
public Command SettingsCommand { get; set; }
public MainWindow()
{
InitializeComponent();
this.DataContext = mainViewModel;
mainViewModel.PageContant = new MonitorView();
DetailCommand = new Command(DoDetailCommand);
GoBackCommand = new Command(DoGoBackCommand);
SettingsCommand = new Command(DoSettingsCommand);
}
private void DoSettingsCommand(object obj)
{
new SettingsWindow() { Owner = this }.ShowDialog();
}
private void DoDetailCommand(object obj)
{
WorkshopView view = new WorkshopView();
mainViewModel.PageContant = view;
//位移
ThicknessAnimation thicknessAnimation = new ThicknessAnimation(
new Thickness(0, 50, 0, -50), new Thickness(0, 0, 0, 0),
new TimeSpan(0, 0, 0, 0, 400));
//透明度
DoubleAnimation doubleAnimation = new DoubleAnimation(0, 1, new TimeSpan(0, 0, 0, 0, 400));
Storyboard.SetTarget(thicknessAnimation, view);
Storyboard.SetTarget(doubleAnimation, view);
Storyboard.SetTargetProperty(thicknessAnimation, new PropertyPath("Margin"));
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("Opacity"));
Storyboard storyboard = new Storyboard();
storyboard.Children.Add(thicknessAnimation);
storyboard.Children.Add(doubleAnimation);
storyboard.Begin();
}
private void DoGoBackCommand(object obj)
{
MonitorView monitorView = new MonitorView();
mainViewModel.PageContant = monitorView;
// 透明度
DoubleAnimation doubleAnimation = new DoubleAnimation(0, 1, new TimeSpan(0, 0, 0, 0, 400));
Storyboard.SetTarget(doubleAnimation, monitorView);
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("Opacity"));
Storyboard storyboard = new Storyboard();
storyboard.Children.Add(doubleAnimation);
storyboard.Begin();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}
}
4.app.xaml
<Application x:Class="test1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:test1"
StartupUri="MainWindow.xaml">
<Application.Resources>
<Style TargetType="Button" x:Key="ButtonStyle">
<Setter Property="Foreground" Value="#AAA"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border BorderThickness="1" Background="Transparent" Name="border">
<Border.BorderBrush>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Color="#22FFFFFF" Offset="0"/>
<GradientStop Color="#77FFFFFF" Offset="0.5"/>
<GradientStop Color="#22FFFFFF" Offset="1"/>
</LinearGradientBrush>
</Border.BorderBrush>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="{TemplateBinding Tag}" FontFamily="Assets/Fonts/#iconfont" FontSize="14" VerticalAlignment="Center" Margin="0,2,5,0"/>
<TextBlock Text="{TemplateBinding Content}" VerticalAlignment="Center"/>
</StackPanel>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Background" Value="#11FFFFFF"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="Button" x:Key="ControlButtonStyle">
<Setter Property="Width" Value="40"/>
<Setter Property="Background" Value="#11FFFFFF"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontFamily" Value="Assets/Fonts/#iconfont"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid Background="{TemplateBinding Background}">
<Border Name="root">
<ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="root" Property="Background" Value="#33FFFFFF"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Application.Resources>
</Application>
5.MonitorView
右键点击views点击添加 点击用户控件点击添加
<UserControl x:Class="test1.Views.MonitorView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:test1.Views"
xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
xmlns:zxc="clr-namespace:test1.Controls"
mc:Ignorable="d"
d:DesignHeight="650" d:DesignWidth="1100">
<UserControl.Resources>
<Style TargetType="GroupBox">
<Setter Property="Margin" Value="10,5"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupBox">
<Grid>
<Polyline Points="0 30,0 10,10 0,30 0" Stroke="#9918AABD" StrokeThickness="1"
VerticalAlignment="Top" HorizontalAlignment="Left"/>
<Ellipse Width="4" Height="4" VerticalAlignment="Top" HorizontalAlignment="Left"
Fill="#9918AABD" Margin="24,-2,0,0"/>
<Ellipse Width="4" Height="4" VerticalAlignment="Top" HorizontalAlignment="Left"
Fill="#9918AABD" Margin="-2,24,0,0"/>
<Path Data="M0 0,3 3,30 3,33 0,68 0,73 7,78 7,78 10M8 0,25 0" Stroke="#5518AABD"
VerticalAlignment="Top" HorizontalAlignment="Right"/>
<Polyline Points="0,0 0,15 10,15" Stroke="#5518AABD"
VerticalAlignment="Bottom" HorizontalAlignment="Left"/>
<Polyline Points="10,0 0,10" Stroke="#5518AABD"
VerticalAlignment="Bottom" HorizontalAlignment="Right"/>
<Polygon Points="0,7 7 7 7 0" Fill="#9918AABD"
VerticalAlignment="Bottom" HorizontalAlignment="Right"/>
<Border BorderBrush="#5518AABD" BorderThickness="0,1,0,0" VerticalAlignment="Top"
Margin="30,-0.5,78,0"/>
<Border BorderBrush="#5518AABD" BorderThickness="0,0,1,0" HorizontalAlignment="Right"
Margin="0,10"/>
<Border BorderBrush="#5518AABD" BorderThickness="0,1,0,0" VerticalAlignment="Bottom"
Margin="10,0"/>
<Border BorderBrush="#5518AABD" BorderThickness="0,0,1,0" HorizontalAlignment="Left"
Margin="-0.5,15"/>
<Path Data="M0 0,3 0,5 4,3 8,0 8,3 4" Fill="#9918AABD" VerticalAlignment="Top"
HorizontalAlignment="Left" Margin="10,13"/>
<Path Data="M0 0,3 0,5 4,3 8,0 8,3 4" Fill="#5518AABD" VerticalAlignment="Top"
HorizontalAlignment="Left" Margin="16,13"/>
<TextBlock Text="{TemplateBinding Header}" Foreground="#18AABD" VerticalAlignment="Top"
HorizontalAlignment="Left" Margin="25,8"/>
<ContentPresenter/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition/>
<RowDefinition Height="120"/>
</Grid.RowDefinitions>
<!--第一行-->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center">
<TextBlock Text="20:00" VerticalAlignment="Center" Foreground="White"
FontSize="30" FontFamily="../Assets/Fonts/#Digital Display"/>
<StackPanel TextBlock.Foreground="White" TextBlock.FontSize="10" Margin="15,0,0,0">
<TextBlock Text="2022-07-05"/>
<TextBlock Text="星期五" HorizontalAlignment="Right"/>
</StackPanel>
</StackPanel>
<!--计数-->
<StackPanel Grid.Column="1"
Orientation="Horizontal"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Margin="20,0,0,0">
<StackPanel.Resources>
<DataTemplate x:Key="dataTemp">
<Border Width="15" Background="#3318AABD" Margin="2,0">
<TextBlock Text="{Binding}" VerticalAlignment="Center" HorizontalAlignment="Center"
Foreground="White" FontSize="16" FontWeight="Normal"/>
</Border>
</DataTemplate>
</StackPanel.Resources>
<TextBlock Text=""
FontFamily="../Assets/Fonts/#iconfont"
Foreground="#55ffffff"
FontSize="20"
VerticalAlignment="Center"/>
<TextBlock Text="机台 总数"
VerticalAlignment="Center"
Foreground="#55ffffff"
Margin="10,0"
FontSize="10"/>
<ItemsControl ItemsSource="{Binding Total}" ItemTemplate="{StaticResource dataTemp}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
<TextBlock Text="生产计数" VerticalAlignment="Center" Foreground="#99FFFFFF" Margin="20,0,10,0"/>
<ItemsControl ItemsSource="{Binding ProductionCount}" ItemTemplate="{StaticResource dataTemp}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
<TextBlock Text="不良计数" VerticalAlignment="Center" Foreground="#99FFFFFF" Margin="20,0,10,0"/>
<ItemsControl ItemsSource="{Binding BadCount}" ItemTemplate="{StaticResource dataTemp}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</StackPanel>
<Button Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="20,0"
Content="配置" Tag="" Style="{StaticResource ButtonStyle}" Height="33" Width="80"
Command="{Binding SettingsCommand,RelativeSource={RelativeSource AncestorType=Window}}">
</Button>
</Grid>
<!--第二行-->
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<!--第一列-->
<UniformGrid Columns="1" Margin="10,0" Grid.Column="0">
<GroupBox Header="环境">
<ItemsControl ItemsSource="{Binding Evironment}" VerticalAlignment="Center" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="4"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
<TextBlock Text="{Binding Value}" HorizontalAlignment="Center" FontSize="16"
Foreground="#FF2BEDF1" Margin="0,5"/>
<TextBlock Text="{Binding Header}" Foreground="#AAFFFFFF" FontSize="10"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</GroupBox>
<GroupBox Header="产能">
<Grid>
<lvc:CartesianChart Margin="20,35,20,5">
<lvc:CartesianChart.Series>
<lvc:ColumnSeries Values="300,400,480,450,380,450,450,330,340,280,220"
MaxColumnWidth="10" Title="生产计数">
<lvc:ColumnSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#FF3FBBE6" Offset="0"/>
<GradientStop Color="#FF2BEDF1" Offset="1"/>
</LinearGradientBrush>
</lvc:ColumnSeries.Fill>
</lvc:ColumnSeries>
<lvc:ColumnSeries Values="15,55,15,40,38,45,25,15" MaxColumnWidth="10"
Title="不良计数">
<lvc:ColumnSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#FFFB9A9A" Offset="0"/>
<GradientStop Color="#FFFF5151" Offset="1"/>
</LinearGradientBrush>
</lvc:ColumnSeries.Fill>
</lvc:ColumnSeries>
</lvc:CartesianChart.Series>
<lvc:CartesianChart.AxisX>
<lvc:Axis Labels="8:00,9:00,10:00,11:00,12:00,13:00,14:00,15:00,16:00,17:00,18:00">
<lvc:Axis.Separator>
<lvc:Separator Step="1" StrokeThickness="0"/>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisX>
<lvc:CartesianChart.AxisY>
<lvc:Axis MinValue="0" MaxValue="500" >
<lvc:Axis.Separator>
<lvc:Separator Step="100" Stroke="#11ffffff"/>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisY>
</lvc:CartesianChart>
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="10">
<Border Width="6" Height="6" Background="#FF2BEDF1" Margin="5,0"/>
<TextBlock Text="生产计数" FontSize="10" Foreground="#44FFFFFF"/>
<Border Width="6" Height="6" Background="#FFFF5151" Margin="5,0"/>
<TextBlock Text="不良计数" FontSize="10" Foreground="#44FFFFFF"/>
</StackPanel>
</Grid>
</GroupBox>
<GroupBox Header="质量">
<lvc:CartesianChart Margin="20,35,20,5">
<lvc:CartesianChart.Series>
<lvc:LineSeries Values="15,55,15,40,38,45,25,15,45,25,15,49" Title="不良计数"
PointGeometrySize="0" Stroke="#FF2BEDF1" StrokeThickness="1">
<lvc:LineSeries.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#552BEDF1" Offset="0"/>
<GradientStop Color="Transparent" Offset="1"/>
</LinearGradientBrush>
</lvc:LineSeries.Fill>
</lvc:LineSeries>
</lvc:CartesianChart.Series>
<lvc:CartesianChart.AxisX>
<lvc:Axis Labels="8:00,9:00,10:00,11:00,12:00,13:00,14:00,15:00,16:00,17:00,18:00">
<lvc:Axis.Separator>
<lvc:Separator Step="1" StrokeThickness="0"/>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisX>
<lvc:CartesianChart.AxisY>
<lvc:Axis MinValue="0" MaxValue="100">
<lvc:Axis.Separator>
<lvc:Separator Step="20" Stroke="#11FFFFFF"/>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisY>
</lvc:CartesianChart>
</GroupBox>
</UniformGrid>
<!--第二列-->
<Grid Grid.Column="1" >
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="120"/>
<RowDefinition Height="1.5*"/>
</Grid.RowDefinitions>
<Border Width="400" Height="150" Grid.RowSpan="2" VerticalAlignment="Top" HorizontalAlignment="Right">
<Border.Background>
<ImageBrush ImageSource="../Assets/Images/device.png" Stretch="Uniform"/>
</Border.Background>
</Border>
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Foreground="#99FFFFFF"
FontWeight="Normal">
<Run Text="" FontFamily="../Assets/Fonts/#iconfont"/>
<Run Text="报警记录"/>
</TextBlock>
<ItemsControl Grid.Row="1" ItemsSource="{Binding AlarmList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Height="23">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="1.3*"/>
<ColumnDefinition/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Border Width="6" Height="6" Background="IndianRed" CornerRadius="3" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Text="{Binding Num}" Grid.Column="1" VerticalAlignment="Center"
HorizontalAlignment="Center" Foreground="#992BEDF1" FontWeight="Normal"/>
<TextBlock Text="{Binding Message}"
Grid.Column="2"
VerticalAlignment="Center"
Foreground="#992BEDF1"
FontWeight="Normal"/>
<TextBlock Text="{Binding Time}"
Grid.Column="3"
VerticalAlignment="Center"
Foreground="#992BEDF1"
FontWeight="Normal"/>
<TextBlock Text="{Binding Duration ,StringFormat=时长{0}秒}"
Grid.Column="4"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Foreground="#992BEDF1"
FontWeight="Normal"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
<GroupBox Grid.Row="2" Header="数据异常报警比例" Margin="0,5">
<lvc:PieChart InnerRadius="45" Margin="0,40,0,20">
<lvc:PieChart.Resources>
<Style TargetType="lvc:PieSeries">
<Setter Property="DataLabelsTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal" TextBlock.Foreground="#44FFFFFF">
<TextBlock Text="{Binding Point.SeriesView.Title}" Margin="0,0,5,0"/>
<TextBlock Text="{Binding Point.SeriesView.Values[0]}"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</lvc:PieChart.Resources>
<lvc:PieChart.Series>
<lvc:PieSeries Values="10" StrokeThickness="0" LabelPosition="OutsideSlice" DataLabels="True" Title="压差"/>
<lvc:PieSeries Values="50" StrokeThickness="0" LabelPosition="OutsideSlice" DataLabels="True" Title="压差1"/>
<lvc:PieSeries Values="60" StrokeThickness="0" LabelPosition="OutsideSlice" DataLabels="True" Title="压差2"/>
<lvc:PieSeries Values="10" StrokeThickness="0" LabelPosition="OutsideSlice" DataLabels="True" Title="压差3"/>
<lvc:PieSeries Values="50" StrokeThickness="0" LabelPosition="OutsideSlice" DataLabels="True" Title="压差4"/>
<lvc:PieSeries Values="20" StrokeThickness="0" LabelPosition="OutsideSlice" DataLabels="True" Title="压差5"/>
<lvc:PieSeries Values="90" StrokeThickness="0" LabelPosition="OutsideSlice" DataLabels="True" Title="压差6"/>
<lvc:PieSeries Values="20" StrokeThickness="0" LabelPosition="OutsideSlice" DataLabels="True" Title="压差7"/>
<lvc:PieSeries Values="20" StrokeThickness="0" LabelPosition="OutsideSlice" DataLabels="True" Title="压差8"/>
<lvc:PieSeries Values="20" StrokeThickness="0" LabelPosition="OutsideSlice" DataLabels="True" Title="压差9"/>
<lvc:PieSeries Values="20" StrokeThickness="0" LabelPosition="OutsideSlice" DataLabels="True" Title="压差10"/>
</lvc:PieChart.Series>
</lvc:PieChart>
</GroupBox>
</Grid>
<!--第三列-->
<UniformGrid Columns="1" Margin="10,0" Grid.Column="2">
<GroupBox Header="设备">
<ItemsControl ItemsSource="{Binding DeviceMonitor}" VerticalAlignment="Center">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="4"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,5">
<TextBlock Text="{Binding Value}" HorizontalAlignment="Center" FontSize="16" Foreground="#FF2BEDF1" Margin="0,5"/>
<TextBlock Text="{Binding Header}" Foreground="#AAFFFFFF" FontSize="10"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</GroupBox>
<GroupBox Header="能耗">
<zxc:RaderChart ItemsSources="{Binding RaderDatas}"/>
</GroupBox>
<GroupBox Header="人力">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="1.8*"/>
</Grid.ColumnDefinitions>
<StackPanel VerticalAlignment="Center" Margin="0,20,0,0">
<TextBlock Text="1600" HorizontalAlignment="Center" Foreground="#99FFFFFF" FontSize="25"/>
<TextBlock Text="在职在岗" HorizontalAlignment="Center" FontSize="12" Foreground="#55FFFFFF"
Margin="0,5"/>
</StackPanel>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Text="缺岗统计" VerticalAlignment="Center" Foreground="#18AABD"/>
<ItemsControl ItemsSource="{Binding PersonnelList}" Grid.Row="1">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Height="23">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="40"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border Width="5" Height="5" CornerRadius="5" Background="Orange"/>
<TextBlock Text="{Binding Name}" Grid.Column="1" VerticalAlignment="Center"
HorizontalAlignment="Center" FontSize="11" Foreground="#99FFFFFF"/>
<TextBlock Text="{Binding Duties}" Grid.Column="2" VerticalAlignment="Center"
HorizontalAlignment="Center" FontSize="11" Foreground="#99FFFFFF"/>
<StackPanel Orientation="Horizontal" Grid.Column="3">
<Border Background="#AA2BEDF1" Height="3" Width="70" Margin="5,0"/>
<TextBlock Text="{Binding ManHour}" VerticalAlignment="Center" Foreground="#99FFFFFF" FontSize="9"/>
</StackPanel>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</Grid>
</GroupBox>
</UniformGrid>
</Grid>
<!--第三行-->
<ItemsControl ItemsSource="{Binding WorkshopList}" Grid.Row="2" Margin="10,0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderBrush="#9918AABD" BorderThickness="0,1,0,0" Background="#0A18AABD" Margin="10,5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="90"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}" VerticalAlignment="Center" HorizontalAlignment="Left"
Foreground="#18AABD" Margin="10,0"/>
<TextBlock Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="10,0">
<Hyperlink Foreground="#33FFFFFF" TextDecorations="None"
Command="{Binding DetailCommand,RelativeSource={RelativeSource AncestorType=Window} }"
CommandParameter="{Binding}"
>[详情]</Hyperlink>
</TextBlock>
<StackPanel Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="机台总数" Foreground="#55ffffff" FontSize="10"/>
<TextBlock Text="{Binding TotalCount}" HorizontalAlignment="Center"
FontSize="30" Foreground="#99ffffff" Margin="0,5"/>
</StackPanel>
<UniformGrid Grid.Row="1" Grid.Column="1">
<StackPanel>
<TextBlock Text="{Binding WorkCount}" HorizontalAlignment="Center" FontSize="16" Foreground="LightSeaGreen" FontWeight="Normal"/>
<TextBlock Text="作业" HorizontalAlignment="Center" Foreground="#55FFFFFF" FontSize="10"/>
</StackPanel>
<StackPanel>
<TextBlock Text="{Binding WaitCount}" HorizontalAlignment="Center" FontSize="16" Foreground="DarkOrange" FontWeight="Normal"/>
<TextBlock Text="等待" HorizontalAlignment="Center" Foreground="#55FFFFFF" />
</StackPanel>
<StackPanel>
<TextBlock Text="{Binding FaultCount}" HorizontalAlignment="Center" FontSize="16" Foreground="DarkRed" FontWeight="Normal"/>
<TextBlock Text="故障" HorizontalAlignment="Center" Foreground="#55FFFFFF"/>
</StackPanel>
<StackPanel>
<TextBlock Text="{Binding StopCount}" HorizontalAlignment="Center" FontSize="16" Foreground="Gray" FontWeight="Normal"/>
<TextBlock Text="停机" HorizontalAlignment="Center" Foreground="#55FFFFFF"/>
</StackPanel>
</UniformGrid>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</UserControl>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace test1.Views
{
/// <summary>
/// MonitorView.xaml 的交互逻辑
/// </summary>
public partial class MonitorView : UserControl
{
public MonitorView()
{
InitializeComponent();
}
}
}
三:结束语
现在写出的还不够完善,还需要在去观摩学习,虽然有很多不足的地方,接下来我会不断的去改进,下次会少贴源码,对项目结构多做分析。