init project

This commit is contained in:
rainerosion 2023-01-11 02:28:05 +08:00
commit 5041c7d1d9
21 changed files with 1564 additions and 0 deletions

8
.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
#Binaries
**bin/
**obj/
#Visual Studio Files and Folders
**.vs/
**.idea/
**packages

6
Tech/App.config Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>

171
Tech/Form1.Designer.cs generated Normal file
View File

@ -0,0 +1,171 @@
namespace PlumByteUI_Learn
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.panel1 = new System.Windows.Forms.Panel();
this.button4 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.panelContainer = new System.Windows.Forms.Panel();
this.panel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// panel1
//
this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(22)))), ((int)(((byte)(101)))), ((int)(((byte)(193)))));
this.panel1.Controls.Add(this.button4);
this.panel1.Controls.Add(this.button3);
this.panel1.Controls.Add(this.button2);
this.panel1.Controls.Add(this.button1);
this.panel1.Controls.Add(this.pictureBox1);
this.panel1.Dock = System.Windows.Forms.DockStyle.Left;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(237, 550);
this.panel1.TabIndex = 0;
//
// button4
//
this.button4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(118)))), ((int)(((byte)(211)))));
this.button4.FlatAppearance.BorderSize = 0;
this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button4.ForeColor = System.Drawing.Color.White;
this.button4.Image = ((System.Drawing.Image)(resources.GetObject("button4.Image")));
this.button4.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.button4.Location = new System.Drawing.Point(0, 274);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(237, 54);
this.button4.TabIndex = 4;
this.button4.Text = " Settings";
this.button4.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.button4.UseVisualStyleBackColor = false;
this.button4.Click += new System.EventHandler(this.button4_Click);
//
// button3
//
this.button3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(118)))), ((int)(((byte)(211)))));
this.button3.FlatAppearance.BorderSize = 0;
this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button3.ForeColor = System.Drawing.Color.White;
this.button3.Image = ((System.Drawing.Image)(resources.GetObject("button3.Image")));
this.button3.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.button3.Location = new System.Drawing.Point(0, 173);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(237, 54);
this.button3.TabIndex = 3;
this.button3.Text = " Scan";
this.button3.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.button3.UseVisualStyleBackColor = false;
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// button2
//
this.button2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(118)))), ((int)(((byte)(211)))));
this.button2.FlatAppearance.BorderSize = 0;
this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button2.ForeColor = System.Drawing.Color.White;
this.button2.Image = ((System.Drawing.Image)(resources.GetObject("button2.Image")));
this.button2.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.button2.Location = new System.Drawing.Point(0, 223);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(237, 54);
this.button2.TabIndex = 2;
this.button2.Text = " Recovery";
this.button2.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.button2.UseVisualStyleBackColor = false;
//
// button1
//
this.button1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(118)))), ((int)(((byte)(211)))));
this.button1.FlatAppearance.BorderSize = 0;
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button1.ForeColor = System.Drawing.Color.White;
this.button1.Image = ((System.Drawing.Image)(resources.GetObject("button1.Image")));
this.button1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.button1.Location = new System.Drawing.Point(0, 123);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(237, 54);
this.button1.TabIndex = 1;
this.button1.Text = " 直播";
this.button1.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.button1.UseVisualStyleBackColor = false;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// pictureBox1
//
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
this.pictureBox1.Location = new System.Drawing.Point(35, 22);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(161, 49);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// panelContainer
//
this.panelContainer.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelContainer.Location = new System.Drawing.Point(237, 0);
this.panelContainer.Name = "panelContainer";
this.panelContainer.Size = new System.Drawing.Size(921, 550);
this.panelContainer.TabIndex = 1;
//
// Form1
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(1158, 550);
this.Controls.Add(this.panelContainer);
this.Controls.Add(this.panel1);
this.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "Form1";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.panel1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Button button4;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Panel panelContainer;
}
}

49
Tech/Form1.cs Normal file
View File

@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace PlumByteUI_Learn
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
UCOverview uo = new UCOverview();
uo.Dock = DockStyle.Fill;
panelContainer.Controls.Add(uo);
}
private void button3_Click(object sender, EventArgs e)
{
throw new System.NotImplementedException();
}
private void button4_Click(object sender, EventArgs e)
{
DialogResult dialogResult = MessageBox.Show(@"确定要退出吗?", @"确定退出?", MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
if (dialogResult.Equals(DialogResult.OK))
{
System.Environment.Exit(0);
// Application.Exit();
}
}
private void button1_Click(object sender, EventArgs e)
{
var playerView = new PlayerView();
this.panelContainer.Controls.Clear();
this.panelContainer.Controls.Add(playerView);
}
}
}

203
Tech/Form1.resx Normal file
View File

@ -0,0 +1,203 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="button4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAABGdBTUEAALGPC/xhBQAAAZtJREFUSEvN
lksvQ0EUx7ts6hEWXl9DpCTSldhb0BCPDTY+iKRIkIgECb6CeEbwjTzCEq3fmTllpp1Rt/cu/JJfmnvO
f85NzfReuX9FrVabx08UPnBKW9nB0F0z/oeKtpLD4gKeYllLBq5v0eVCWwaup/EEC1oKQ6ADH7DOMQ7h
Mj5LweEJF7Ab96Wg3GP8RjSPTCwZ7/rpcqAjm6FZQtnUNMj6ko4MQ6Biou2zqaPiEOrDqoknR75Fj46K
Q2jNxJu5wnHs188bDLGko3xozOEOysl6w0bONOpB/dy2PV5RTtg2zmrUhFsxrFEP6iO2HUejf7pJp0Y9
qHfZdhyNmnCrjS5q1IP6mG1HqWrUhOWRsIHyN37ERi416kE9tPnunsxo1IfGKoaQ01XEPI5istPlQmgA
0/xOenVUHELyBE7DoY4KQ6Bsc6nxXhMeNLN6Cse/DU3Z1GsTs/uyh4O4gi/oUn+fyG9lC+uvZlmf15Fh
JIDyqp3UkoHrO3TxjjXXEyjrfr/Bb7BYnm0u69rKDoYu2tnfZP/fSvvkcl/hgjG7FPFKYwAAAABJRU5E
rkJggg==
</value>
</data>
<data name="button3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAABGdBTUEAALGPC/xhBQAAAddJREFUSEu1
lEkoRVEYgJ8oU8RKsrUxLG1tWEsJGfbKQiFFGUoyxYYUG4WFvbJRsrLFQlJkY2ahbEjJ8/3n/Lrufee9
d6/hq697z3/+4Q333FgY4vF4PvbhMT7ptRfzNeXn0KQIR/ARXUh8GIu0JDwUVeEcPmMYJE/yK7VFImxm
Yz1O4xH+hkOcQumXrSPMkDH8D0Z1hBkyYGN/Tr+OMEO6bSwl97iMM3q9RKFBry66dIQZ0mpjTj5wFoux
E+VbN2IBTmh9MhrNAIFFjY05mcRKPDEryzU2a3mqIdWaYpLkPMgnDnKHsvd9gHCF8rN96eId83SEhcCZ
2fKzim32NjIH2tqD4Lrd8zGBQ/Y2KfO4ZG99LGhrD4Ltds9HmG/Sgmv21kedtvYgKE/Li9n2SPaffCEv
Stl/MCuPW8zU1n7Y2DApflxPlyADKlAe7yDj2jIRNl2PcvCcDGKHruWlGHwqX7FUW7ohYdukJvL9xK/o
2sWctkoOSfKafzPp0bnBYm2VGhJ7TEk05PDVaov0kJyBW1IZgfQ/UxCKSvDclKdnF3O0NBoUluGFdEnB
HuZqyc+gQTmeSjcHO1ioqb+DRvI22JSuipyNRczSlL+Dpk24j/UaCkEs9gmh7juf0joaywAAAABJRU5E
rkJggg==
</value>
</data>
<data name="button2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAABGdBTUEAALGPC/xhBQAAAZVJREFUSEvl
lV0rBFEYx4cbq/gKorbcKhfeCrERn8KFUGhDUeJbuJALr9+CRFEu0br1IbyUl2T8/uY57dbOnGanudtf
/Vr+53nO7MyecyZoLsIwLOA0LuAWzuE4tllJdpikF0/wDeN4wVMsWot6xuxPPxS24C7+oLjGJRzFftRd
lfEOxSfu4ApWbBo/FB6guMchi2NhXBd+ULHxZEPJUKRnLi6ww2Iv1K39d0Q8WxwPBUX8Rn2zTou9ULeM
v+jw3wkFZ6iGAYu8UNeKE1iqMfnxMtiO73hpUf4w+RSKskX5w+SL0TXCSYsywxzaqPWLhnBbV4A+izJB
vxaPWLeoCqGODFGyKBP0u8c+b1EVwlx+E/rdnqn/soS5rC76r/AV4w9PBtw+GbSoIegbtv4ji+ph0O34
R0y14x2qxwp+YY/F8VDgzq5zTHt26QI668SGxX4o3I/qU53CI6g7F3sWp4MGrRK9J8QNbuIM6n0yi7rj
WxQfuGqtjUFjNx5j0ptR+SF2WUt2mETLu/Ydr0/9X7CSpiAI/gACpE+5oN4iRQAAAABJRU5ErkJggg==
</value>
</data>
<data name="button1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAABGdBTUEAALGPC/xhBQAAARVJREFUSEvt
lD1qAlEUhYfY+rcErQXrkFSCe7AJaSxDljBiEdxDCleRRnABoguxtkoRAi/f9Z1hiMyfb6aw8IPD4577
7j2DD4zuBOGca6EF2qBtDdl8jFpanYL5iprkRatTMJe+50aygrB5v8YtZaWY6XvXhXB/gtoqmw/h7sqP
uHdZzYZwLwk4oJ7ssBDqOfpCXVmXAX3ZZ6iDQt687Xaoh3IDDLywnwsv6R11ZgYY+OFvgv/h2/kBBr16
D0/vGXVUZmLztgTCQqpg835NcUgZJ51lZIbYn1oZe/SA7F3KiLU6BfMJ/Zzb+Xyjtc4ibM+jVv+HxhBN
G9BAK28EvmiGflER1p9p5HoYHqPPChpr5E5dougP9qR2rggdy1IAAAAASUVORK5CYII=
</value>
</data>
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
tHn0xH2urv4DYDhyEVfMlyQAAAAASUVORK5CYII=
</value>
</data>
</root>

98
Tech/PlayerView.Designer.cs generated Normal file
View File

@ -0,0 +1,98 @@
using System.ComponentModel;
namespace PlumByteUI_Learn
{
partial class PlayerView
{
/// <summary>
/// Required designer variable.
/// </summary>
private IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.vlcControl = new Vlc.DotNet.Forms.VlcControl();
this.panel1 = new System.Windows.Forms.Panel();
this.playBtn = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.vlcControl)).BeginInit();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// vlcControl
//
this.vlcControl.BackColor = System.Drawing.Color.Black;
this.vlcControl.Dock = System.Windows.Forms.DockStyle.Top;
this.vlcControl.Location = new System.Drawing.Point(0, 0);
this.vlcControl.Name = "vlcControl";
this.vlcControl.Size = new System.Drawing.Size(921, 460);
this.vlcControl.Spu = -1;
this.vlcControl.TabIndex = 0;
this.vlcControl.Text = "vlcControl1";
this.vlcControl.VlcLibDirectory = null;
this.vlcControl.VlcMediaplayerOptions = null;
this.vlcControl.VlcLibDirectoryNeeded += new System.EventHandler<Vlc.DotNet.Forms.VlcLibDirectoryNeededEventArgs>(this.vlcControl_VlcLibDirectoryNeeded);
this.vlcControl.Click += new System.EventHandler(this.vlcControl_Click);
//
// panel1
//
this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(46)))), ((int)(((byte)(57)))), ((int)(((byte)(75)))));
this.panel1.Controls.Add(this.playBtn);
this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panel1.Location = new System.Drawing.Point(0, 460);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(921, 90);
this.panel1.TabIndex = 1;
//
// playBtn
//
this.playBtn.Location = new System.Drawing.Point(439, 39);
this.playBtn.Name = "playBtn";
this.playBtn.Size = new System.Drawing.Size(75, 23);
this.playBtn.TabIndex = 0;
this.playBtn.Text = "button1";
this.playBtn.UseVisualStyleBackColor = true;
this.playBtn.Click += new System.EventHandler(this.playBtn_Click);
//
// PlayerView
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.panel1);
this.Controls.Add(this.vlcControl);
this.Name = "PlayerView";
this.Size = new System.Drawing.Size(921, 550);
this.Load += new System.EventHandler(this.PlayerView_Load);
((System.ComponentModel.ISupportInitialize)(this.vlcControl)).EndInit();
this.panel1.ResumeLayout(false);
this.ResumeLayout(false);
}
private System.Windows.Forms.Button playBtn;
private System.Windows.Forms.Panel panel1;
#endregion
private Vlc.DotNet.Forms.VlcControl vlcControl;
}
}

73
Tech/PlayerView.cs Normal file
View File

@ -0,0 +1,73 @@
using System;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
using Vlc.DotNet.Forms;
namespace PlumByteUI_Learn
{
public partial class PlayerView : UserControl
{
public PlayerView()
{
InitializeComponent();
}
private void PlayerView_Load(object sender, EventArgs e)
{
string[] options = { ":network-caching=100", ":rtsp-tcp"};// { ":network-caching=100", ":rtsp -tcp", ":no-audio" }; // --avcodec-hw={any,d3d11va,dxva2,none}
var videoUri = new Uri(@"rtsp://127.0.0.1:8554/rains");
vlcControl.Play(videoUri, options);
// vlcControl.Controls
// using(SaveFileDialog sfd = new SaveFileDialog())
// {
// sfd.Filter = "jpg文件 | *.jpg";
// if(sfd.ShowDialog() == DialogResult.OK)
// {
// vlcControl.TakeSnapshot(sfd.FileName);
// }
// }
}
private void vlcControl_Click(object sender, EventArgs e)
{
}
private void vlcControl_VlcLibDirectoryNeeded(object sender, VlcLibDirectoryNeededEventArgs e)
{
var currentAssembly = Assembly.GetEntryAssembly();
var currentDirectory = new FileInfo(currentAssembly.Location).DirectoryName;
if (currentDirectory == null)
return;
if (IntPtr.Size == 4)
e.VlcLibDirectory = new DirectoryInfo(Path.GetFullPath(@".\libvlc\win-x86\"));
else
e.VlcLibDirectory = new DirectoryInfo(Path.GetFullPath(@".\libvlc\win-x64\"));
if (!e.VlcLibDirectory.Exists)
{
var folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
folderBrowserDialog.Description = "Select Vlc libraries folder.";
folderBrowserDialog.RootFolder = Environment.SpecialFolder.Desktop;
folderBrowserDialog.ShowNewFolderButton = true;
if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
{
e.VlcLibDirectory = new DirectoryInfo(folderBrowserDialog.SelectedPath);
}
}
}
/**
*
*/
private void playBtn_Click(object sender, EventArgs e)
{
string[] options = { ":network-caching=100", ":rtsp-tcp", ":no-audio" };// { ":network-caching=100", ":rtsp -tcp", ":no-audio" }; // --avcodec-hw={any,d3d11va,dxva2,none}
var videoUri = new Uri(@"rtsp://127.0.0.1:8554/rains");
vlcControl.Play(videoUri, options);
}
}
}

120
Tech/PlayerView.resx Normal file
View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,2 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeEditing/Localization/MoveToResource/LastResourceFile/@EntryValue">ACFE594E-F51C-4B73-9661-0144FF9E33A3/f:Form1.resx</s:String></wpf:ResourceDictionary>

22
Tech/Program.cs Normal file
View File

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace PlumByteUI_Learn
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}

View File

@ -0,0 +1,36 @@
using System.Reflection;
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("Tech")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Tech")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[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.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("acfe594e-f51c-4b73-9661-0144ff9e33a3")]
// 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")]

71
Tech/Properties/Resources.Designer.cs generated Normal file
View File

@ -0,0 +1,71 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace PlumByteUI_Learn.Properties
{
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PlumByteUI_Learn.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}

View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

30
Tech/Properties/Settings.Designer.cs generated Normal file
View File

@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace PlumByteUI_Learn.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

118
Tech/Tech.csproj Normal file
View File

@ -0,0 +1,118 @@
<?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>{ACFE594E-F51C-4B73-9661-0144FF9E33A3}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>PlumByteUI_Learn</RootNamespace>
<AssemblyName>Tech</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="Vlc.DotNet.Core, Version=3.1.0.0, Culture=neutral, PublicKeyToken=84529da31f4eb963, processorArchitecture=MSIL">
<HintPath>..\packages\Vlc.DotNet.Core.3.1.0\lib\net45\Vlc.DotNet.Core.dll</HintPath>
</Reference>
<Reference Include="Vlc.DotNet.Core.Interops, Version=3.1.0.0, Culture=neutral, PublicKeyToken=84529da31f4eb963, processorArchitecture=MSIL">
<HintPath>..\packages\Vlc.DotNet.Core.Interops.3.1.0\lib\net45\Vlc.DotNet.Core.Interops.dll</HintPath>
</Reference>
<Reference Include="Vlc.DotNet.Forms, Version=3.1.0.0, Culture=neutral, PublicKeyToken=84529da31f4eb963, processorArchitecture=MSIL">
<HintPath>..\packages\Vlc.DotNet.Forms.3.1.0\lib\net45\Vlc.DotNet.Forms.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="PlayerView.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="PlayerView.Designer.cs">
<DependentUpon>PlayerView.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="UCOverview.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UCOverview.Designer.cs">
<DependentUpon>UCOverview.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PlayerView.resx">
<DependentUpon>PlayerView.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<EmbeddedResource Include="UCOverview.resx">
<DependentUpon>UCOverview.cs</DependentUpon>
</EmbeddedResource>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\VideoLAN.LibVLC.Windows.3.0.18\build\VideoLAN.LibVLC.Windows.targets" Condition="Exists('..\packages\VideoLAN.LibVLC.Windows.3.0.18\build\VideoLAN.LibVLC.Windows.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105.The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\VideoLAN.LibVLC.Windows.3.0.18\build\VideoLAN.LibVLC.Windows.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\VideoLAN.LibVLC.Windows.3.0.18\build\VideoLAN.LibVLC.Windows.targets'))" />
</Target>
</Project>

View File

@ -0,0 +1,2 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/DesignerComponentManagerNuGet/DesignerToolboxNuGetState/@EntryValue">D:\develop\RiderProjects\UI-Design-in-C\PlumByteUI-Learn\packages\Vlc.DotNet.Forms.3.1.0\lib\net45\Vlc.DotNet.Forms.dll|Vlc.DotNet.Forms.VlcControl</s:String></wpf:ResourceDictionary>

177
Tech/UCOverview.Designer.cs generated Normal file
View File

@ -0,0 +1,177 @@
namespace PlumByteUI_Learn
{
partial class UCOverview
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(UCOverview));
this.panel1 = new System.Windows.Forms.Panel();
this.button1 = new System.Windows.Forms.Button();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.button3 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button4 = new System.Windows.Forms.Button();
this.panel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// panel1
//
this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(150)))), ((int)(((byte)(245)))));
this.panel1.Controls.Add(this.button1);
this.panel1.Controls.Add(this.label2);
this.panel1.Controls.Add(this.label1);
this.panel1.Controls.Add(this.pictureBox1);
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(921, 180);
this.panel1.TabIndex = 0;
//
// button1
//
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button1.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.button1.ForeColor = System.Drawing.Color.White;
this.button1.Location = new System.Drawing.Point(704, 31);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(156, 55);
this.button1.TabIndex = 3;
this.button1.Text = "Quick Scan";
this.button1.UseVisualStyleBackColor = true;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.ForeColor = System.Drawing.Color.White;
this.label2.Location = new System.Drawing.Point(134, 77);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(135, 21);
this.label2.TabIndex = 2;
this.label2.Text = "Scanner: Active";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("Century Gothic", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.ForeColor = System.Drawing.Color.White;
this.label1.Location = new System.Drawing.Point(128, 41);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(263, 32);
this.label1.TabIndex = 1;
this.label1.Text = "PC is Malware Free";
this.label1.Click += new System.EventHandler(this.label1_Click);
//
// pictureBox1
//
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
this.pictureBox1.Location = new System.Drawing.Point(43, 31);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(70, 54);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// button3
//
this.button3.Anchor = System.Windows.Forms.AnchorStyles.None;
this.button3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(150)))), ((int)(((byte)(245)))));
this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button3.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.button3.ForeColor = System.Drawing.Color.White;
this.button3.Image = ((System.Drawing.Image)(resources.GetObject("button3.Image")));
this.button3.Location = new System.Drawing.Point(152, 266);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(161, 145);
this.button3.TabIndex = 5;
this.button3.Text = "\r\nQuick Scan";
this.button3.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.button3.UseVisualStyleBackColor = false;
//
// button2
//
this.button2.Anchor = System.Windows.Forms.AnchorStyles.None;
this.button2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(150)))), ((int)(((byte)(245)))));
this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button2.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.button2.ForeColor = System.Drawing.Color.White;
this.button2.Image = ((System.Drawing.Image)(resources.GetObject("button2.Image")));
this.button2.Location = new System.Drawing.Point(373, 266);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(161, 145);
this.button2.TabIndex = 5;
this.button2.Text = "\r\nHistory";
this.button2.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.button2.UseVisualStyleBackColor = false;
//
// button4
//
this.button4.Anchor = System.Windows.Forms.AnchorStyles.None;
this.button4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(150)))), ((int)(((byte)(245)))));
this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button4.Font = new System.Drawing.Font("Century Gothic", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.button4.ForeColor = System.Drawing.Color.White;
this.button4.Image = ((System.Drawing.Image)(resources.GetObject("button4.Image")));
this.button4.Location = new System.Drawing.Point(592, 266);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(161, 145);
this.button4.TabIndex = 5;
this.button4.Text = "\r\nUpdates\r\n";
this.button4.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.button4.UseVisualStyleBackColor = false;
//
// UCOverview
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.Controls.Add(this.button4);
this.Controls.Add(this.button2);
this.Controls.Add(this.button3);
this.Controls.Add(this.panel1);
this.Name = "UCOverview";
this.Size = new System.Drawing.Size(921, 550);
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button4;
}
}

25
Tech/UCOverview.cs Normal file
View File

@ -0,0 +1,25 @@
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;
namespace PlumByteUI_Learn
{
public partial class UCOverview : UserControl
{
public UCOverview()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
}
}

222
Tech/UCOverview.resx Normal file
View File

@ -0,0 +1,222 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
RK5CYII=
</value>
</data>
<data name="button3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAAxhJREFUaEPt
md2LDlEcx58lb+FKrFtvi/9AdtNm44Zr5T3aJJHiXhQiF1xzoVxw462Vl7giRa0UKQm5tuUlbna9jc9v
zm/PM88xxpg5ZzyP5lPf9tnnd+b7PaeZOXPmPI2amjYkiqK5aCs6gx6iEfRe9RY9QKfRFtSth7UPdGoV
uoO+obxI29toQG3+HXRioXamLDfRfLWtFoLXo8/SC098QuvUvhoIPBhHp/McHUZ9qAfNUsln+e4IeoHS
+IEOaExYCJJOpvEI5b7eaSv31WM5MIVD2iwMBMiM5DKGdqEubZYbjpmA9qAvyGWjNvMLxguQe0/IlLpc
mxQGD7nkZKpOIvfMPG3iD0xvxPZNRtEyLZcGr14kZzfJkJb9gGG/8W1hu5a9gecOY91Cn5bLg9l142m5
ryWv4NuFZEWQxM9ZwagbfY0tm/Rq2Tt4rzARFpkIZmu5OJgMxnZNnmgpGGQ8M1GWbVoqDibnjJflqJaC
QcZxE2U5q6XiYOI+tFZqKRhkyMMyybCWioPJO+Nl6dFSMMhYYqIsI1oqDibuU3eGloJBxkwTZRnTUnEw
aYeBjGqpOJi4l9YiLQWDjMUmyuLl0vpvbnZ3+j2mpWCQccJEWbxMv+7S/aWWgkHGGxNl2aSl4mCStkQJ
dnnhvdpEWPwsUQSM3EWjLOz++kXqT4gnGpaABP6W8pilLeMHtewNPHca6xb8LeMFDN0XK3kJ6tdyafAa
QO4zy++LlYBp2qvuB1R6gw0PmW4/imGCMK+6AsZpmw8yEexGRTcf9qqHy1M0TZv6B/MqtoPGkV3MoIPJ
2qB7hU6iNUhWsVNVS9FadAq9RnkJPhjfW6ZZXENTNNo/mPvaxL6FhszH3xL2zAgEyIbBJeROn1nI9H0R
xc8J/k5E51EWd9H0ODQkhMxB7g8931XuDz2/LDv4TgZzAWUhgwn+TlQaOjkJXZYeZ1APpnLoZJ7B3EMd
M5gr0uMM6sFUDp2UlYH8YJrFBm3e3tDRrDOzT5t1BnQ4bTCdNYhx6PhkdDUeQhTt1687EwYg98xm/bem
pjoajZ/CG/WvnrUs2AAAAABJRU5ErkJggg==
</value>
</data>
<data name="button2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAABGJJREFUaEPt
mUnIHEUYhv/sgiExERG3iIoE48E9AfGoBwVNMOCC4EHBizEHFTx48JCDWUxEowfB5WY0cScqiqIXBUWR
iLcY4woaF1xDXMfnrXp7pv52Ml29zH9xHnhhur7v/WqK7q6u7pqaMGHChFr0er3Z6AJ0G3oC7UE/WPvQ
OU4NcLwGXYEuRqvQ2ehUdBxagmY5dWagwxPRJvQFGsUjtgQ4fjU2D+VRp40fOluKtqND6jmDG2wNcHxL
bP4P76EjnDZe6OhqdEC9DuE39Drahm5GN6FVtvahbRn6B6X8jdY7ZXzQyTz0kHos8RfagS5F851eCbl7
0TC2ojlO6xYKL0SvqJcSz6LlTqsFvg2hwnCeQ/Oc2g0UXIBeU/WEb9HlTmkE/pWhUq/3DLoO/RKOBjyN
5jq9PRR7LJQdoEviZIcbQ41Z6E10lI/PRJqqU7aH5LZQ6NpYr48GcbzDIyFvEbrHWuTmadC+0D8DHGsS
+AQVaEJY43AzKHAM+k7VjH5nnwlytwRXZLObKyH3NPRjcEW+R0sdrg/mh0OZAVc6lAX5O6MtsNPNWZB/
TbT12epQPTCehP4IJSK7HMoGT+OBCDzPR2tAD95lDuWDaWOwR/5EpziUDZ62A1mB9IwquMuhPDDMQV8F
a2SHQ7XA12ogAp+m4IKPUf5ikuQLg23AJQ7VAl8XA1kd7X3Oc6gaku+MnoBmj0bLBXxdDETLol9DhUj+
Wozk9HTudnNt8LYeiMD7RiwReNzN1ZD8UfQENrq5Nni7GsjmWCLwgZurITl9CL6Dpr3d5YKvi0vrXPR+
qBD53KFqSP49evrsdSgbPOejL4M70nQg6XJFHHSoGpLTB6HY51AW5Ovtr/zmuMXhWuDbH+19DjlUDcla
2xRkX1rkLUZPyVRCbdMWh7ng06X1roqYAw5VQ3J6s29y80jIuwiVP0Bo2rzeKY2hRrr43OPmakjWi05B
5fRLzjpUvpT0FM5/eI2AOi+HipH8e43k8gPxsG9pxIq3vJRdaLFTWkEdPRDTN8c7HKqG5OwlCrF0IDor
6xzqBOrpg0bKSoeqIbm8aBz5NCV+I9LrcCeXUgo1n0QFn6HZDuWB4e5gjTRaxreFPk9H6TJ+g0P5YDoW
HQz2yIsOzRj0md7kuk+OdqgeGB8IJQasdWjs0Ff5VXebQ/XBrO+7+n5VoBms0ce4OtCH3gx/VofmGxQ+
GTWGAleFUgO0ZDjB4c5RbfSpOkro5kqg0IOxXh8NpvMzQ80zUHkQ9zvcHorNRemNJ3SZrXZKa6i1Fv2k
wgm7UXefTAUFD/cRW8uZxmcHr87CCypU4iV0pNO6hcK1thX4re00XYbSWW5W+3x0GdIWXfqcKNCl3O2Z
GAadaAKo2ui5F72tBvMWUptiyhnG12jGpvgAHWrDss7W2yhU4z7UboptA53nboYOQx4thcY2ndeGP6Pt
aa2Eb0e69j9E2pou0G9tWeteuhVpK7veAnDChAn/d6am/gX7SRFT99pkxgAAAABJRU5ErkJggg==
</value>
</data>
<data name="button4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAAlZJREFUaEPt
mb9qFFEUxjetRE3QGEkKIWJrpZ0Wor5L9CGE6FMIpk8hiKVoYa02CioKvoB/UqSyu/7OPd9sdldChplz
Mxm4P/jYe8/Mfud8uzAMM5NKpVKWlNJ9tIu+o9+oNbIYFubYQq/zRB2R1XAww23U/Po/0Q66iS7plNMP
w15D+8jYQ8s6NC4Y/G2OkNJztKTyuGDwezlCSr/QeZXHB8M/yzFSeqRSEfC/bNI2Hsy/WQq4rlI4eFuI
L9K6yrFgfICMsyqFgu86sgANn1F8GPcuc/3H1kLY4IvEh3Hf+CBYbiK7MzDe6dNo1nZsU6f3xz1jg2C3
GGLFlxlbz4bZ0Nf64X5xQbDaQHMhVM9oPRvGLjb9w7hXTBBsLERzFZyGMLx02IdlbBj3CQvy0N3SJ7Sm
csbL833YriE713igcjdkEhLEwGobzYUwchPQdgolC7OtbXeyO2hbDLUp10f+NUhb1KYGORb51yBtUZsa
5FjkX4O0RW1qkCl4DHPrIHIT0LYbfH+4mzkhr95Bjrxl9tJhA5ZH3or3we16BjHwsDDvs9tMGN96Az6K
hDDcMiCIgc9/YXyZmQ1h54SFMNw2KIiB12KYhmIhDLcODGLgd3KPaYTbBwcx8DyZB2eA77ncIaUDlWLB
+CL6iD6gVZXDwfsGMr6qFA/mZR8uA/6PLQU8VWl8MPwq+pNjpHRH5XHB4EvoRY6Q0huVxwWDX0AvcwT/
R67q0OmHYc8ge4H6BDXvJO1N2C2dMhw+S2deoSuyGhafpzV/0Q9kr/PuyqJSqRRhMvkHGvsqhIBOSewA
AAAASUVORK5CYII=
</value>
</data>
</root>

7
Tech/packages.config Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="VideoLAN.LibVLC.Windows" version="3.0.18" targetFramework="net472" />
<package id="Vlc.DotNet.Core" version="3.1.0" targetFramework="net472" />
<package id="Vlc.DotNet.Core.Interops" version="3.1.0" targetFramework="net472" />
<package id="Vlc.DotNet.Forms" version="3.1.0" targetFramework="net472" />
</packages>