sc 10 months ago
parent
commit
11f0ffd0ea
  1. 4
      ControlUse/Timeline/ChartConstants.cs
  2. 2
      ControlUse/Timeline/Model/BarModel.cs
  3. 2
      ControlUse/Timeline/Model/HeaderModel.cs
  4. 2
      ControlUse/Timeline/Model/ItemModel.cs
  5. 6
      ControlUse/Timeline/Processor/BarChartProcessor.cs
  6. 35
      ControlUse/Timeline/Properties/AssemblyInfo.cs
  7. 38
      ControlUse/Timeline/Timeline.Designer.cs
  8. 314
      ControlUse/Timeline/Timeline.cs
  9. 33
      ControlUse/Timeline/Timelines.csproj
  10. 10
      SunlightCentralizedControlManagement(SCCM).sln
  11. 95
      SunlightCentralizedControlManagement_SCCM_.csproj
  12. 7
      View/ProductionPlanningView.xaml
  13. 6
      View/ProductionPlanningView.xaml.cs

4
ControlUse/Timeline/ChartConstants.cs

@ -1,10 +1,10 @@
using System;
using System.Collections.Generic;
using Timeline.Model;
using Timelines.Model;
using System.Windows.Forms;
using System.Drawing;
namespace Timeline
namespace Timelines
{
public static class ChartConstants
{

2
ControlUse/Timeline/Model/BarModel.cs

@ -1,7 +1,7 @@
using System;
using System.Drawing;
namespace Timeline.Model
namespace Timelines.Model
{
public class BarModel
{

2
ControlUse/Timeline/Model/HeaderModel.cs

@ -1,6 +1,6 @@
using System;
namespace Timeline.Model
namespace Timelines.Model
{
public class HeaderModel
{

2
ControlUse/Timeline/Model/ItemModel.cs

@ -1,7 +1,7 @@
using System;
using System.Drawing;
namespace Timeline.Model
namespace Timelines.Model
{
public class ItemModel
{

6
ControlUse/Timeline/Processor/BarChartProcessor.cs

@ -3,11 +3,11 @@ using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Runtime.Remoting.Messaging;
using Timeline.Model;
using Timeline;
using Timelines.Model;
using Timelines;
using System.Threading.Tasks;
namespace Timeline.Processor
namespace Timelines.Processor
{
public class BarChartProcessor
{

35
ControlUse/Timeline/Properties/AssemblyInfo.cs

@ -2,35 +2,32 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Timeline")]
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("Timelines")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Timeline")]
[assembly: AssemblyCopyright("Copyright © 2014")]
[assembly: AssemblyProduct("Timelines")]
[assembly: AssemblyCopyright("Copyright © 2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("40f4c82a-50c5-4880-a19b-dec078fac398")]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("fcaa62db-0f2f-449c-8511-c6f0821688a7")]
// Version information for an assembly consists of the following four values:
// 程序集的版本信息由下列四个值组成:
//
// Major Version
// Minor Version
// Build Number
// Revision
// 主版本
// 次版本
// 生成号
// 修订号
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

38
ControlUse/Timeline/Timeline.Designer.cs

@ -0,0 +1,38 @@
namespace Timelines
{
partial class Timeline
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 组件设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
}
#endregion
}
}

314
ControlUse/Timeline/Timeline.cs

@ -0,0 +1,314 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Timelines.Model;
using Timelines.Processor;
namespace Timelines
{
public partial class Timeline : UserControl
{
#region public properties
public SolidBrush HoverClickSolidBrush { get; set; }
public Font RowFont { get; set; }
public Font DateFont { get; set; }
public Font TimeFont { get; set; }
#endregion
#region private properties
private ToolTip ToolTip { get; set; }
private VScrollBar VScrollBar1 { get; set; }
private int AvailableWidth { get; set; }
private Point OldMousePosition { get; set; }
private int ScrollPosition { get; set; }
private List<string> ToolTipTextList { get; set; }
private string ToolTipTextTitle { get; set; }
private List<BarModel> BarList { get; set; }
private DateTime StartDate { get; set; }
private int DistinctItemCount { get; set; }
private DateTime EndDate { get; set; }
#endregion
public Timeline()
{
InitializeComponent();
}
public void ShowBarChart(DateTime chartStartDate, DateTime chartEndDate, List<ItemModel> items)
{
this.StartDate = chartStartDate;
this.EndDate = chartEndDate;
var proc = new BarChartProcessor();
this.BarList = proc.GetBarList(items);
this.DistinctItemCount = items.Select(i => i.ItemName).Distinct().Count();
this.Refresh();
}
private void ChartMouseMove(Object sender, MouseEventArgs e)
{
var localMousePosition = new Point(e.X, e.Y);
if (BarList == null || BarList.Count == 0)
{
return;
}
if (localMousePosition == this.OldMousePosition)
{
return;
}
var proc = new BarChartProcessor();
var mouseOverObject = false;
var tempText = new List<string>();
var tempTitle = "";
Parallel.ForEach(this.BarList, bar =>
{
if (proc.MouseInsideBar(localMousePosition, bar) && bar.Visible)
{
bar.IsMouseOver = true;
tempTitle = bar.Name;
tempText.Add("Event Start: " + bar.StartValue.ToUniversalTime());
tempText.Add("Event End: " + bar.EndValue.ToUniversalTime());
mouseOverObject = true;
}
else
{
bar.IsMouseOver = false;
}
});
this.ToolTipTextList = tempText;
this.ToolTipTextTitle = tempTitle;
this.ToolTip.SetToolTip(this, this.ToolTipTextList.Count > 0 ? this.ToolTipTextList.ToString() : "");
if (mouseOverObject)
{
this.Refresh();
}
this.OldMousePosition = localMousePosition;
}
private void ChartMouseClick(Object sender, MouseEventArgs e)
{
if (BarList == null || BarList.Count == 0)
{
return;
}
var localMousePosition = new Point(e.X, e.Y);
var proc = new BarChartProcessor();
this.BarList = proc.MouseClickHandler(this.BarList, localMousePosition);
}
private void ChartMouseWheel(object sender, MouseEventArgs e)
{
this.VScrollBar1.Focus();
}
private void Timeline_Load(object sender, EventArgs e)
{
//initialize public properties
RowFont = TimeFont = DateFont = new Font("Segoe UI", 10, FontStyle.Regular, GraphicsUnit.Point);
HoverClickSolidBrush = new SolidBrush(Color.LightBlue);
BackColor = Color.White;
//initialize mouse controls
MouseMove += ChartMouseMove;
MouseWheel += ChartMouseWheel;
MouseClick += ChartMouseClick;
//initialize Tooltip
this.ToolTip = new ToolTip
{
OwnerDraw = true
};
this.ToolTip.Draw += ToolTipText_Draw;
this.ToolTip.Popup += ToolTipText_Popup;
//Flicker free drawing
SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
//ScrollBar
this.VScrollBar1 = new VScrollBar
{
Dock = DockStyle.Right,
Visible = false
};
Controls.Add(this.VScrollBar1);
this.VScrollBar1.Scroll += vScrollBar1_Scroll;
}
private void vScrollBar1_Scroll(object sender, ScrollEventArgs e)
{
this.ScrollPosition = this.VScrollBar1.Value;
this.Refresh();
}
private void ToolTipText_Draw(Object sender, DrawToolTipEventArgs e)
{
if (this.ToolTipTextList.Count == 0)
{
return;
}
e.Graphics.FillRectangle(Brushes.White, e.Bounds);
e.Graphics.DrawString(this.ToolTipTextTitle, ChartConstants.TitleFont, Brushes.Black, 5, 0);
// Draws the lines in the text box
foreach (var item in this.ToolTipTextList)
{
var stringY = (ChartConstants.ToolTipTitleHeight - ChartConstants.ToolTipfontHeight - e.Graphics.MeasureString(item, ChartConstants.RowFont).Height) / 2 +
10 + ((this.ToolTipTextList.IndexOf(item) + 1) * 14);
e.Graphics.DrawString(item, ChartConstants.RowFont, Brushes.Black, 5, stringY);
}
}
private void ToolTipText_Popup(Object sender, PopupEventArgs e)
{
var toolTipHeight = (ChartConstants.ToolTipTitleHeight + 4) + (this.ToolTipTextList.Count * (ChartConstants.ToolTipfontHeight + 3));
e.ToolTipSize = new Size(230, toolTipHeight);
}
private void PaintChart(Graphics graphics)
{
if (BarList == null || BarList.Count == 0)
{
return;
}
var proc = new BarChartProcessor();
var headerList = proc.GetFullHeaderList(this.StartDate, this.EndDate, this.Width, this.TimeFont);
if (headerList.Count == 0 || this.DistinctItemCount == 0)
{
return;
}
var pixelsPerSecond = proc.GetPixelsPerSecond(headerList);
this.AvailableWidth = Width - ChartConstants.BarStartLeft - ChartConstants.BarStartRight;
if (this.DistinctItemCount * (ChartConstants.BarHeight + ChartConstants.BarSpace) > Height)
{
this.VScrollBar1.Visible = true;
this.VScrollBar1.Maximum = this.DistinctItemCount - 3;
}
graphics.Clear(BackColor);
DrawChartHeadersAndNet(graphics, headerList);
DrawBars(graphics, this.BarList, pixelsPerSecond);
}
protected override void OnPaint(PaintEventArgs pe)
{
PaintChart(pe.Graphics);
}
private void DrawBars(Graphics graphics, IEnumerable<BarModel> barList, double pixelsPerSecond)
{
//list of machineNames to add to the left of each row
var rowTitleList = new List<string>();
var proc = new BarChartProcessor();
// Draws each bar
foreach (var bar in barList)
{
var numberOfBarsInControl = (Height - ChartConstants.BarStartTop) / (ChartConstants.BarHeight + ChartConstants.BarSpace);
if ((bar.RowIndex >= this.ScrollPosition &&
bar.RowIndex < numberOfBarsInControl + this.ScrollPosition))
{
var newBar = proc.GetBar(bar, this.StartDate, pixelsPerSecond, ScrollPosition, this.Width);
DrawBarAndRowText(newBar, rowTitleList, graphics);
}
else
{
bar.Visible = false;
}
}
}
private void DrawBarAndRowText(BarModel newBar, ICollection<string> rowTitleList, Graphics graphics)
{
var barBrush = new SolidBrush(newBar.Color);
if (newBar.IsMouseOver || newBar.IsClicked)
{
barBrush = HoverClickSolidBrush;
}
graphics.FillRectangle(barBrush, newBar.BarRectangle);
graphics.DrawRectangle(Pens.Black, newBar.BarRectangle);
// Draws the rowtext, only once for each machine
if (!rowTitleList.Contains(newBar.Name))
{
graphics.DrawString(newBar.Name,
RowFont,
Brushes.Black,
0,
ChartConstants.BarStartTop + (ChartConstants.BarHeight * (newBar.RowIndex - this.ScrollPosition)) +
(ChartConstants.BarSpace * (newBar.RowIndex - this.ScrollPosition)));
rowTitleList.Add(newBar.Name);
}
}
private void DrawChartHeadersAndNet(Graphics graphics, IList<HeaderModel> headerList)
{
var verticalLineLastY = ChartConstants.BarStartTop + (this.DistinctItemCount - this.ScrollPosition) * (ChartConstants.BarHeight + ChartConstants.BarSpace);
//draw headers
foreach (var header in headerList)
{
//draw the date when there is a change of day
var index = headerList.IndexOf(header);
if (headerList.IndexOf(header) == 0
|| header.HeaderDateTime.Day != headerList[index - 1].HeaderDateTime.Day)
{
graphics.DrawString(
header.HeaderDateTime.ToShortDateString(),
DateFont,
Brushes.Black,
header.StartLocation,
0);
}
graphics.DrawString(
header.HeaderDateTime.ToShortTimeString(),
TimeFont,
Brushes.Black,
header.StartLocation,
ChartConstants.HeaderTimeStartTop);
//draw vertical line under header
graphics.DrawLine(
ChartConstants.GridColor,
header.StartLocation,
ChartConstants.HeaderTimeStartTop,
header.StartLocation,
verticalLineLastY);
}
//draw last vertical line
graphics.DrawLine(
ChartConstants.GridColor,
ChartConstants.BarStartLeft + this.AvailableWidth,
ChartConstants.HeaderTimeStartTop,
ChartConstants.BarStartLeft + this.AvailableWidth,
verticalLineLastY);
//draw horizontal net
for (var index = 0; index < this.DistinctItemCount; index++)
{
var y = ChartConstants.BarStartTop + index * (ChartConstants.BarHeight + ChartConstants.BarSpace);
graphics.DrawLine(
ChartConstants.GridColor,
ChartConstants.BarStartLeft,
y,
ChartConstants.BarStartLeft + this.AvailableWidth,
y
);
}
}
}
}

33
ControlUse/Timeline/Timelines.csproj

@ -1,17 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{77D9FB0A-D628-4002-A118-B3D6E6601092}</ProjectGuid>
<ProjectGuid>{FCAA62DB-0F2F-449C-8511-C6F0821688A7}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Timeline</RootNamespace>
<AssemblyName>Timeline</AssemblyName>
<RootNamespace>Timelines</RootNamespace>
<AssemblyName>Timelines</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@ -38,6 +37,7 @@
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
@ -47,27 +47,14 @@
<Compile Include="Model\HeaderModel.cs" />
<Compile Include="Model\ItemModel.cs" />
<Compile Include="Processor\BarChartProcessor.cs" />
<Compile Include="TimelineChart.cs">
<Compile Include="Timeline.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="TimelineChart.Designer.cs">
<DependentUpon>TimelineChart.cs</DependentUpon>
<Compile Include="Timeline.Designer.cs">
<DependentUpon>Timeline.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="TimelineChart.resx">
<DependentUpon>TimelineChart.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

10
SunlightCentralizedControlManagement(SCCM).sln

@ -5,7 +5,7 @@ VisualStudioVersion = 17.11.35312.102
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SunlightCentralizedControlManagement_SCCM_", "SunlightCentralizedControlManagement_SCCM_.csproj", "{2CFE8A79-C7DC-47AC-8D0C-2E03010E2458}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Timelines", "ControlUse\Timeline\Timelines.csproj", "{77D9FB0A-D628-4002-A118-B3D6E6601092}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Timelines", "..\Timelines\Timelines.csproj", "{FCAA62DB-0F2F-449C-8511-C6F0821688A7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -17,10 +17,10 @@ Global
{2CFE8A79-C7DC-47AC-8D0C-2E03010E2458}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2CFE8A79-C7DC-47AC-8D0C-2E03010E2458}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2CFE8A79-C7DC-47AC-8D0C-2E03010E2458}.Release|Any CPU.Build.0 = Release|Any CPU
{77D9FB0A-D628-4002-A118-B3D6E6601092}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{77D9FB0A-D628-4002-A118-B3D6E6601092}.Debug|Any CPU.Build.0 = Debug|Any CPU
{77D9FB0A-D628-4002-A118-B3D6E6601092}.Release|Any CPU.ActiveCfg = Release|Any CPU
{77D9FB0A-D628-4002-A118-B3D6E6601092}.Release|Any CPU.Build.0 = Release|Any CPU
{FCAA62DB-0F2F-449C-8511-C6F0821688A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FCAA62DB-0F2F-449C-8511-C6F0821688A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FCAA62DB-0F2F-449C-8511-C6F0821688A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FCAA62DB-0F2F-449C-8511-C6F0821688A7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

95
SunlightCentralizedControlManagement_SCCM_.csproj

@ -31,7 +31,7 @@
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>x64</PlatformTarget>
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
@ -39,6 +39,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -55,6 +56,26 @@
<PropertyGroup>
<ApplicationIcon>sunlightlogo.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
@ -79,6 +100,28 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="ControlUse\Timeline\ChartConstants.cs" />
<Compile Include="ControlUse\Timeline\Model\BarModel.cs" />
<Compile Include="ControlUse\Timeline\Model\HeaderModel.cs" />
<Compile Include="ControlUse\Timeline\Model\ItemModel.cs" />
<Compile Include="ControlUse\Timeline\obj\Debug\.NETFramework,Version=v4.5.AssemblyAttributes.cs" />
<Compile Include="ControlUse\Timeline\obj\Debug\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs" />
<Compile Include="ControlUse\Timeline\obj\Debug\.NETFramework,Version=v4.8.AssemblyAttributes.cs" />
<Compile Include="ControlUse\Timeline\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs" />
<Compile Include="ControlUse\Timeline\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs" />
<Compile Include="ControlUse\Timeline\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs" />
<Compile Include="ControlUse\Timeline\obj\Release\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs" />
<Compile Include="ControlUse\Timeline\obj\x64\Debug\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs" />
<Compile Include="ControlUse\Timeline\Processor\BarChartProcessor.cs" />
<Compile Include="ControlUse\Timeline\Properties\AssemblyInfo.cs" />
<Compile Include="ControlUse\Timeline\Timeline.cs" />
<Compile Include="ControlUse\Timeline\Timeline.Designer.cs">
<DependentUpon>Timeline.cs</DependentUpon>
</Compile>
<Compile Include="ControlUse\Timeline\TimelineChart.cs" />
<Compile Include="ControlUse\Timeline\TimelineChart.Designer.cs">
<DependentUpon>TimelineChart.cs</DependentUpon>
</Compile>
<Compile Include="ConvertMoels\BoolRBConvert.cs" />
<Compile Include="UserClass\AsyncTcpClient.cs" />
<Compile Include="UserClass\ClsLock.cs" />
@ -256,6 +299,12 @@
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="ControlUse\Timeline\obj\Debug\Timeline.TimelineChart.resources" />
<EmbeddedResource Include="ControlUse\Timeline\obj\Release\Timeline.TimelineChart.resources" />
<EmbeddedResource Include="ControlUse\Timeline\obj\x64\Debug\Timeline.TimelineChart.resources" />
<EmbeddedResource Include="ControlUse\Timeline\TimelineChart.resx">
<DependentUpon>TimelineChart.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.en-US.resx" />
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
@ -264,6 +313,24 @@
<EmbeddedResource Include="Properties\Resources.zh-CN.resx" />
<EmbeddedResource Include="Properties\Resources.zh-TW.resx" />
<Resource Include="Fonts\FontAwesome.otf" />
<None Include="ControlUse\Timeline\obj\Debug\DesignTimeResolveAssemblyReferences.cache" />
<None Include="ControlUse\Timeline\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache" />
<None Include="ControlUse\Timeline\obj\Debug\Timeline.csproj.AssemblyReference.cache" />
<None Include="ControlUse\Timeline\obj\Debug\Timeline.csproj.CoreCompileInputs.cache" />
<None Include="ControlUse\Timeline\obj\Debug\Timeline.csproj.GenerateResource.cache" />
<None Include="ControlUse\Timeline\obj\Debug\Timeline.csprojResolveAssemblyReference.cache" />
<None Include="ControlUse\Timeline\obj\Debug\Timelines.csproj.AssemblyReference.cache" />
<None Include="ControlUse\Timeline\obj\Debug\Timelines.csproj.CoreCompileInputs.cache" />
<None Include="ControlUse\Timeline\obj\Debug\Timelines.csproj.GenerateResource.cache" />
<None Include="ControlUse\Timeline\obj\Release\DesignTimeResolveAssemblyReferencesInput.cache" />
<None Include="ControlUse\Timeline\obj\Release\Timelines.csproj.AssemblyReference.cache" />
<None Include="ControlUse\Timeline\obj\Release\Timelines.csproj.CoreCompileInputs.cache" />
<None Include="ControlUse\Timeline\obj\Release\Timelines.csproj.GenerateResource.cache" />
<None Include="ControlUse\Timeline\obj\x64\Debug\DesignTimeResolveAssemblyReferencesInput.cache" />
<None Include="ControlUse\Timeline\obj\x64\Debug\Timelines.csproj.AssemblyReference.cache" />
<None Include="ControlUse\Timeline\obj\x64\Debug\Timelines.csproj.CoreCompileInputs.cache" />
<None Include="ControlUse\Timeline\obj\x64\Debug\Timelines.csproj.GenerateResource.cache" />
<None Include="ControlUse\Timeline\Timelines.csproj" />
<None Include="Fonts\font-awesome-4.7.0.zip" />
<None Include="Fonts\font-awesome-4.7.0\fonts\fontawesome-webfont.eot" />
<Resource Include="Fonts\font-awesome-4.7.0\fonts\fontawesome-webfont.ttf" />
@ -345,9 +412,29 @@
</PackageReference>
</ItemGroup>
<ItemGroup>
<Folder Include="ControlUse\" />
<Folder Include="ControlUse\Timeline\bin\x64\Release\" />
<Folder Include="ControlUse\Timeline\obj\Debug\TempPE\" />
<Folder Include="ControlUse\Timeline\obj\Release\TempPE\" />
<Folder Include="ControlUse\Timeline\obj\x64\Debug\TempPE\" />
</ItemGroup>
<ItemGroup>
<Content Include="ControlUse\Timeline\bin\Debug\Timelines.dll" />
<Content Include="ControlUse\Timeline\bin\Debug\Timelines.pdb" />
<Content Include="ControlUse\Timeline\bin\Release\Timeline.dll" />
<Content Include="ControlUse\Timeline\bin\Release\Timeline.pdb" />
<Content Include="ControlUse\Timeline\bin\x64\Debug\Timeline.dll" />
<Content Include="ControlUse\Timeline\bin\x64\Debug\Timeline.pdb" />
<Resource Include="ControlUse\Timeline\obj\Debug\Timeline.csproj.FileListAbsolute.txt" />
<Resource Include="ControlUse\Timeline\obj\Debug\Timelines.csproj.FileListAbsolute.txt" />
<Content Include="ControlUse\Timeline\obj\Debug\Timelines.dll" />
<Content Include="ControlUse\Timeline\obj\Debug\Timelines.pdb" />
<Content Include="ControlUse\Timeline\obj\Release\Timeline.dll" />
<Content Include="ControlUse\Timeline\obj\Release\Timeline.pdb" />
<Resource Include="ControlUse\Timeline\obj\Release\Timelines.csproj.FileListAbsolute.txt" />
<Content Include="ControlUse\Timeline\obj\x64\Debug\Timeline.dll" />
<Content Include="ControlUse\Timeline\obj\x64\Debug\Timeline.pdb" />
<Resource Include="ControlUse\Timeline\obj\x64\Debug\Timelines.csproj.FileListAbsolute.txt" />
<Content Include="ControlUse\Timeline\Timelines.csproj.user" />
<Content Include="Fonts\font-awesome-4.7.0\css\font-awesome.css" />
<Content Include="Fonts\font-awesome-4.7.0\css\font-awesome.min.css" />
<Content Include="Fonts\font-awesome-4.7.0\fonts\fontawesome-webfont.svg" />
@ -387,8 +474,8 @@
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="ControlUse\Timeline\Timelines.csproj">
<Project>{77d9fb0a-d628-4002-a118-b3d6e6601092}</Project>
<ProjectReference Include="..\Timelines\Timelines.csproj">
<Project>{fcaa62db-0f2f-449c-8511-c6f0821688a7}</Project>
<Name>Timelines</Name>
</ProjectReference>
</ItemGroup>

7
View/ProductionPlanningView.xaml

@ -10,7 +10,7 @@
xmlns:lvc="clr-namespace:LiveChartsCore.SkiaSharpView.WPF;assembly=LiveChartsCore.SkiaSharpView.WPF"
xmlns:viewmodel="clr-namespace:SunlightCentralizedControlManagement_SCCM_.ViewModel"
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
xmlns:UserTimeline="clr-namespace:Timeline;assembly=Timeline"
xmlns:UserTimeline="clr-namespace:Timelines;assembly=Timelines"
xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
d:DataContext="{d:DesignInstance Type=viewmodel:ProductionPlanningModel}"
mc:Ignorable="d" Loaded="UserControl_Loaded"
@ -25,9 +25,8 @@
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<!-- <lvc:CartesianChart x:Name="ch" XAxes="{Binding XAxes}" YAxes="{Binding YAxes}" Series="{Binding Series}" />-->
<wfi:WindowsFormsHost >
<UserTimeline:TimelineChart Name="Timeline"/>
<wfi:WindowsFormsHost>
<UserTimeline:Timeline x:Name="qwe"/>
</wfi:WindowsFormsHost>
</Grid>
<StackPanel x:Name="scr" Grid.Row="1" Height="60" Background="#FF00204E" Orientation="Horizontal">

6
View/ProductionPlanningView.xaml.cs

@ -33,8 +33,8 @@ using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using SunlightCentralizedControlManagement_SCCM_.ViewModel;
using LiveChartsCore.SkiaSharpView.WPF;
using System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder;
using Timeline.Model;
using Timeline;
using Timelines.Model;
using Timelines;
namespace SunlightCentralizedControlManagement_SCCM_.View
{
@ -79,7 +79,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
}
}
qwe.ShowBarChart(startDate,endDate,testList);
// var dfg = new TimelineChart();
// qwe.Child = dfg.ShowBarChart(startDate, endDate, testList);
// timeline1.ShowBarChart(startDate, endDate, testList);

Loading…
Cancel
Save