diff --git a/Tech.sln.DotSettings.user b/Tech.sln.DotSettings.user
index 8d92156..9c2c57a 100644
--- a/Tech.sln.DotSettings.user
+++ b/Tech.sln.DotSettings.user
@@ -4,6 +4,8 @@
True
False
- True
+ False
+ False
False
- True
\ No newline at end of file
+ True
+ True
\ No newline at end of file
diff --git a/Tech/MainForm.cs b/Tech/MainForm.cs
index fb8339a..67f63e9 100644
--- a/Tech/MainForm.cs
+++ b/Tech/MainForm.cs
@@ -13,6 +13,20 @@ namespace Tech_Demo
{
public partial class Form1 : Form
{
+
+ [DllImport("user32")]
+ private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
+
+ public const Int32 AW_HOR_POSITIVE = 0x00000001; // 从左到右打开窗口
+ public const Int32 AW_HOR_NEGATIVE = 0x00000002; // 从右到左打开窗口
+ public const Int32 AW_VER_POSITIVE = 0x00000004; // 从上到下打开窗口
+ public const Int32 AW_VER_NEGATIVE = 0x00000008; // 从下到上打开窗口
+ public const Int32 AW_CENTER = 0x00000010; //若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展。
+ public const Int32 AW_HIDE = 0x00010000; //隐藏窗口,缺省则显示窗口。
+ public const Int32 AW_ACTIVATE = 0x00020000; //激活窗口。在使用了AW_HIDE标志后不要使用这个标志。
+ public const Int32 AW_SLIDE = 0x00040000; //使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略。
+ public const Int32 AW_BLEND = 0x00080000; //使用淡出效果。只有当hWnd为顶层窗口的时候才可以使用此标志。
+
public Form1()
{
InitializeComponent();
@@ -23,6 +37,7 @@ namespace Tech_Demo
var playerView = new PlayerView();
playerView.Dock = DockStyle.Fill;
panelContainer.Controls.Add(playerView);
+ // AnimateWindow(playerView.Handle, 1000, AW_HOR_POSITIVE | AW_SLIDE);
// UCOverview uo = new UCOverview();
// uo.Dock = DockStyle.Fill;
// panelContainer.Controls.Add(uo);
@@ -35,13 +50,43 @@ namespace Tech_Demo
private void button4_Click(object sender, EventArgs e)
{
- DialogResult dialogResult =
- MessageBox.Show(@"确定要退出吗?", @"确定退出?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
- if (dialogResult.Equals(DialogResult.OK))
+ // DialogResult dialogResult =
+ // MessageBox.Show(@"确定要退出吗?", @"确定退出?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
+ // if (dialogResult.Equals(DialogResult.OK))
+ // {
+ // System.Environment.Exit(0);
+ // // Application.Exit();
+ // }
+ Boolean exist = false;
+ Panel settingView = null;
+ foreach (Control panelContainerControl in panelContainer.Controls)
{
- System.Environment.Exit(0);
- // Application.Exit();
+ Console.WriteLine(panelContainerControl.Name);
+ // 存在设置
+ if(panelContainerControl.Name.Equals("settings"))
+ {
+ exist = true;
+ settingView = (Panel) panelContainerControl;
+ break;
+ }
}
+
+ if (exist == false)
+ {
+ var panel = new Panel();
+ panel.Size = new System.Drawing.Size(300, 670);
+ panel.BackColor = Color.White;
+ panel.Dock = DockStyle.Left;
+ panel.Name = "settings";
+ AnimateWindow(panel.Handle, 1000, AW_BLEND);
+ panelContainer.Controls.Add(panel);
+ }
+ else
+ {
+ // 销毁
+ settingView.Dispose();
+ }
+
}
private void button1_Click(object sender, EventArgs e)
diff --git a/Tech/MainForm.resx b/Tech/MainForm.resx
index 9489456..a1edffe 100644
--- a/Tech/MainForm.resx
+++ b/Tech/MainForm.resx
@@ -291,6 +291,17 @@
89QdcgJOwAk4ASfgBJyAE3ACTsAJOAEn8F8S+AJxboX/nsXrjQAAAABJRU5ErkJggg==
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAUNJREFUWEfFl22V
+ AjEMRV8UsA4AB7sOkIAFFGAFCUjAAbMOkIADJITzoMMpQz+HTKd/29N7m6ZNK5i5ycx8jBJQ1RXFReT6
+ 7QKqBVT1F8AZwL+IbJsKePAfJ7BpJjCAk8sItBEIwD8EVJVRWYnIpSYq2RyIwN8EHJx5sRYRihS3pEAC
+ /hLw4QA21RFwkD3DF9BmxsdWtANwcidiPQb+OMqqektAYqE0gfcCWrxhz4Fm8DECpvBaAR/O3LC5B1S1
+ ZAuGcLuLqEAgBG8mEIM3EUjBJxfIwScVKIFPJlAKNxXgs2o5uOF4znPN7B4gjIWo8wpLX9PZt4iY2Ahw
+ 8lhJdZWSYiEJG4FcPU9ImAnwJfOXqucRCTOBA4Bj7iUTkLARyKW63z+QaC/gEpYng4nZNf+Y9NGY9WtW
+ s2UlY7P/gpJJvhlzB1BFxyFPyr0PAAAAAElFTkSuQmCC
+
+
17, 17
diff --git a/Tech/PlayerView.Designer.cs b/Tech/PlayerView.Designer.cs
index 2447bc0..30e3f12 100644
--- a/Tech/PlayerView.Designer.cs
+++ b/Tech/PlayerView.Designer.cs
@@ -33,6 +33,7 @@ namespace Tech_Demo
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PlayerView));
this.panel1 = new System.Windows.Forms.Panel();
+ this.muteBtn = new System.Windows.Forms.PictureBox();
this.button9 = new System.Windows.Forms.Button();
this.button8 = new System.Windows.Forms.Button();
this.button7 = new System.Windows.Forms.Button();
@@ -46,6 +47,7 @@ namespace Tech_Demo
this.videoView = new LibVLCSharp.WinForms.VideoView();
this.vlcControl = new Vlc.DotNet.Forms.VlcControl();
this.panel1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.muteBtn)).BeginInit();
this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.videoView)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.vlcControl)).BeginInit();
@@ -54,6 +56,7 @@ namespace Tech_Demo
// panel1
//
this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(46)))), ((int)(((byte)(57)))), ((int)(((byte)(75)))));
+ this.panel1.Controls.Add(this.muteBtn);
this.panel1.Controls.Add(this.button9);
this.panel1.Controls.Add(this.button8);
this.panel1.Controls.Add(this.button7);
@@ -69,6 +72,20 @@ namespace Tech_Demo
this.panel1.Size = new System.Drawing.Size(1000, 60);
this.panel1.TabIndex = 1;
//
+ // muteBtn
+ //
+ this.muteBtn.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
+ this.muteBtn.Dock = System.Windows.Forms.DockStyle.Right;
+ this.muteBtn.Image = ((System.Drawing.Image)(resources.GetObject("muteBtn.Image")));
+ this.muteBtn.InitialImage = ((System.Drawing.Image)(resources.GetObject("muteBtn.InitialImage")));
+ this.muteBtn.Location = new System.Drawing.Point(851, 0);
+ this.muteBtn.Name = "muteBtn";
+ this.muteBtn.Size = new System.Drawing.Size(37, 60);
+ this.muteBtn.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
+ this.muteBtn.TabIndex = 9;
+ this.muteBtn.TabStop = false;
+ this.muteBtn.Click += new System.EventHandler(this.pictureBox1_Click);
+ //
// button9
//
this.button9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(46)))), ((int)(((byte)(57)))), ((int)(((byte)(75)))));
@@ -198,6 +215,7 @@ namespace Tech_Demo
this.button3.Text = "抓拍";
this.button3.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
this.button3.UseVisualStyleBackColor = false;
+ this.button3.Click += new System.EventHandler(this.button3_Click);
//
// button2
//
@@ -251,12 +269,13 @@ namespace Tech_Demo
//
this.videoView.BackColor = System.Drawing.Color.Black;
this.videoView.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.videoView.ForeColor = System.Drawing.Color.White;
this.videoView.Location = new System.Drawing.Point(0, 0);
this.videoView.MediaPlayer = null;
this.videoView.Name = "videoView";
this.videoView.Size = new System.Drawing.Size(1000, 610);
this.videoView.TabIndex = 1;
- this.videoView.Text = "videoView1";
+ this.videoView.Text = "video";
this.videoView.Click += new System.EventHandler(this.videoView_Click);
//
// vlcControl
@@ -282,12 +301,15 @@ namespace Tech_Demo
this.Size = new System.Drawing.Size(1000, 670);
this.Load += new System.EventHandler(this.PlayerView_Load);
this.panel1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.muteBtn)).EndInit();
this.panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.videoView)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.vlcControl)).EndInit();
this.ResumeLayout(false);
}
+ private System.Windows.Forms.PictureBox muteBtn;
+
private LibVLCSharp.WinForms.VideoView videoView;
private System.Windows.Forms.Button button7;
diff --git a/Tech/PlayerView.cs b/Tech/PlayerView.cs
index dcba9ce..4d54b9c 100644
--- a/Tech/PlayerView.cs
+++ b/Tech/PlayerView.cs
@@ -1,8 +1,10 @@
using System;
+using System.Drawing;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
using LibVLCSharp.Shared;
+using Tech_Demo.Properties;
using Vlc.DotNet.Forms;
namespace Tech_Demo
@@ -13,6 +15,12 @@ namespace Tech_Demo
* 单画面模式
*/
public Boolean singleMode;
+
+ /**
+ * 静音
+ */
+ public Boolean mute;
+
public PlayerView()
{
InitializeComponent();
@@ -24,7 +32,7 @@ namespace Tech_Demo
// 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";
@@ -37,21 +45,20 @@ namespace Tech_Demo
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();
@@ -70,7 +77,11 @@ namespace Tech_Demo
*/
private void playBtn_Click(object sender, EventArgs e)
{
- string[] options = { ":network-caching=10", ":rtsp-tcp"};// { ":network-caching=100", ":rtsp -tcp", ":no-audio" }; // --avcodec-hw={any,d3d11va,dxva2,none}
+ string[]
+ options =
+ {
+ ":network-caching=10", ":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);
Console.WriteLine("播放rtsp视频");
@@ -94,30 +105,39 @@ namespace Tech_Demo
private void button1_Click_1(object sender, EventArgs e)
{
-
}
private void button4_Click(object sender, EventArgs e)
{
- // multi mode
-
+ // 复合画面
+ this.singleMode = false;
+ panel2.Dispose();
+ videoView.Dispose();
+ videoView.MediaPlayer.Dispose();
+ foreach (Control panel2Control in panel2.Controls)
+ {
+
+ }
}
private void button5_Click(object sender, EventArgs e)
{
- // 单画面模式
- this.singleMode = true;
- // todo
+ // 单画面模式
+ this.singleMode = true;
+ // todo
}
private void button6_Click(object sender, EventArgs e)
{
- string[] options = { ":network-caching=10", ":rtsp-tcp"};// { ":network-caching=100", ":rtsp -tcp", ":no-audio" }; // --avcodec-hw={any,d3d11va,dxva2,none}
+ string[]
+ options =
+ {
+ ":network-caching=10", ":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.Audio.IsMute = false;
vlcControl.Play(videoUri, options);
Console.WriteLine("播放rtsp视频");
-
}
private void vlcControl_Click_1(object sender, EventArgs e)
@@ -127,16 +147,21 @@ namespace Tech_Demo
private void button7_Click(object sender, EventArgs e)
{
- string[] options = { ":network-caching=100", ":rtsp-tcp"};// { ":network-caching=100", ":rtsp -tcp", ":no-audio" }; // --avcodec-hw={any,d3d11va,dxva2,none}
+ 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://admin:abc123456@192.168.1.233:554/h264/ch33/main/av_stream");
var videoUri = new Uri(@"rtsp://10.211.55.2:8554/rains");
if (videoView.MediaPlayer == null)
{
var libVlc = new LibVLC(enableDebugLogs: true);
- var media = new Media(libVlc,videoUri,options);
+ var media = new Media(libVlc, videoUri, options);
var mediaPlayer = new MediaPlayer(media);
- videoView.MediaPlayer = mediaPlayer;
+ videoView.MediaPlayer = mediaPlayer;
}
+
// 播放器结束播放
if (videoView.MediaPlayer.State == VLCState.Ended)
{
@@ -151,23 +176,55 @@ namespace Tech_Demo
videoView.MediaPlayer.Pause();
}
- if (videoView.MediaPlayer.State == VLCState.Paused || videoView.MediaPlayer.State == VLCState.NothingSpecial)
+ if (videoView.MediaPlayer.State == VLCState.Paused ||
+ videoView.MediaPlayer.State == VLCState.NothingSpecial)
{
// 播放
videoView.MediaPlayer.Play();
}
+
// videoView.MediaPlayer.Play();
Console.WriteLine("mediaPlay:" + videoView.MediaPlayer.State);
}
private void videoView_Click(object sender, EventArgs e)
{
-
}
private void vlcControl_Click_2(object sender, EventArgs e)
{
throw new System.NotImplementedException();
}
+
+ private void panel1_Paint(object sender, PaintEventArgs e)
+ {
+ throw new System.NotImplementedException();
+ }
+
+ private void pictureBox1_Click(object sender, EventArgs e)
+ {
+ System.ComponentModel.ComponentResourceManager resources =
+ new System.ComponentModel.ComponentResourceManager(typeof(PlayerView));
+ if (videoView.MediaPlayer != null)
+ {
+ if ( videoView.MediaPlayer.Mute)
+ {
+ videoView.MediaPlayer.Mute = false;
+ this.muteBtn.Image = (System.Drawing.Image)resources.GetObject("muteBtn.InitialImage");
+ }
+ else
+ {
+ videoView.MediaPlayer.Mute = true;
+ this.muteBtn.Image = Properties.Resources.muteBtn_mute;
+ }
+
+ }
+ }
+
+ private void button3_Click(object sender, EventArgs e)
+ {
+ var videoViewMediaPlayer = this.videoView.MediaPlayer;
+ videoViewMediaPlayer.TakeSnapshot(0,"./1.jpg", 0, 0);
+ }
}
}
\ No newline at end of file
diff --git a/Tech/PlayerView.resx b/Tech/PlayerView.resx
index 9a7872c..6c0f92e 100644
--- a/Tech/PlayerView.resx
+++ b/Tech/PlayerView.resx
@@ -118,6 +118,28 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAUVJREFUWEdj
+ YBgFZITA////HYBYiwytlGsBWhwKxCCwn3LTSDQByXL6OwDNcvo6AIvl9HMADssJOgCoQJLEGMZUjsdy
+ YhwAUtNA0BFARZFAvBaUqrFgaILHSuHNBSDLobq88DoCqGgVPlvwyBHMhkC964D4AhCL4HQEmZYTjAKQ
+ hUBFykB8B4hn0cUBQIsqgFgG2TIgPxDqSR2sjqBmCEDTUB+aA5SgdqTTwwHFUMsE0BzxGSi+iB4OUIM6
+ wADNAZeB4lsH2gHz6eEAfFHQRQ8HgAozXIkwgh4OwJUNvwIdxkVzB6BbgFQQLcdXENG6KP4OdAhKrkBx
+ DFCS1pWRE8EaEZcCoONg7T9sBSah2hCkp55sy2Ea8TiCkAOkKLacgCMIVsdUcwC0akWPDvo6AIsj6O8A
+ NEcMjAOgjgB1zbSpGscj1jAAnZInHMQ0qY4AAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAUVJREFUWEdj
+ YBgFZITA////HYBYiwytlGsBWhwKxCCwn3LTSDQByXL6OwDNcvo6AIvl9HMADssJOgCoQJLEGMZUjsdy
+ YhwAUtNA0BFARZFAvBaUqrFgaILHSuHNBSDLobq88DoCqGgVPlvwyBHMhkC964D4AhCL4HQEmZYTjAKQ
+ hUBFykB8B4hn0cUBQIsqgFgG2TIgPxDqSR2sjqBmCEDTUB+aA5SgdqTTwwHFUMsE0BzxGSi+iB4OUIM6
+ wADNAZeB4lsH2gHz6eEAfFHQRQ8HgAozXIkwgh4OwJUNvwIdxkVzB6BbgFQQLcdXENG6KP4OdAhKrkBx
+ DFCS1pWRE8EaEZcCoONg7T9sBSah2hCkp55sy2Ea8TiCkAOkKLacgCMIVsdUcwC0akWPDvo6AIsj6O8A
+ NEcMjAOgjgB1zbSpGscj1jAAnZInHMQ0qY4AAAAASUVORK5CYII=
+
+
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAMJJREFUWEdj
diff --git a/Tech/Properties/Resources.Designer.cs b/Tech/Properties/Resources.Designer.cs
index 102203e..027066e 100644
--- a/Tech/Properties/Resources.Designer.cs
+++ b/Tech/Properties/Resources.Designer.cs
@@ -1,17 +1,16 @@
//------------------------------------------------------------------------------
//
// 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.
//
//------------------------------------------------------------------------------
-namespace Tech_Demo.Properties
-{
-
-
+namespace Tech_Demo.Properties {
+ using System;
+
+
///
/// A strongly-typed resource class, for looking up localized strings, etc.
///
@@ -19,53 +18,55 @@ namespace Tech_Demo.Properties
// 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.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources
- {
-
+ 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()
- {
+ internal Resources() {
}
-
+
///
/// Returns the cached ResourceManager instance used by this class.
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager
- {
- get
- {
- if ((resourceMan == null))
- {
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tech_Demo.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
-
+
///
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture
- {
- get
- {
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
return resourceCulture;
}
- set
- {
+ set {
resourceCulture = value;
}
}
+
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap muteBtn_mute {
+ get {
+ object obj = ResourceManager.GetObject("muteBtn.mute", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
}
}
diff --git a/Tech/Properties/Resources.resx b/Tech/Properties/Resources.resx
index af7dbeb..981f1ab 100644
--- a/Tech/Properties/Resources.resx
+++ b/Tech/Properties/Resources.resx
@@ -46,7 +46,7 @@
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
- : System.Serialization.Formatters.Binary.BinaryFormatter
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
@@ -60,6 +60,7 @@
: and then encoded with base64 encoding.
-->
+
@@ -68,9 +69,10 @@
-
+
+
@@ -85,9 +87,10 @@
-
+
+
@@ -109,9 +112,13 @@
2.0
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\Resources\24gf-volumeCross-red.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
diff --git a/Tech/Resources/24gf-volumeCross-red.png b/Tech/Resources/24gf-volumeCross-red.png
new file mode 100644
index 0000000..9e7c788
Binary files /dev/null and b/Tech/Resources/24gf-volumeCross-red.png differ
diff --git a/Tech/Tech.csproj b/Tech/Tech.csproj
index fbe9027..8b1f44b 100644
--- a/Tech/Tech.csproj
+++ b/Tech/Tech.csproj
@@ -121,6 +121,7 @@
True
Resources.resx
+ True
UCOverview.cs
@@ -139,6 +140,9 @@
+
+
+
diff --git a/Tech/Tech.csproj.DotSettings b/Tech/Tech.csproj.DotSettings
index af85e25..80c13f5 100644
--- a/Tech/Tech.csproj.DotSettings
+++ b/Tech/Tech.csproj.DotSettings
@@ -1,2 +1,2 @@
- 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*D:\develop\RiderProjects\UI-Design-in-C\PlumByteUI-Learn\packages\LibVLCSharp.WinForms.3.6.7\lib\net40\LibVLCSharp.WinForms.dll|LibVLCSharp.WinForms.VideoView
\ No newline at end of file
+ C:\Users\rainerosion\RiderProjects\Demo-C\packages\Vlc.DotNet.Forms.3.1.0\lib\net45\Vlc.DotNet.Forms.dll|*C:\Users\rainerosion\RiderProjects\Demo-C\packages\LibVLCSharp.WinForms.3.6.7\lib\net40\LibVLCSharp.WinForms.dll|*C:\Users\rainerosion\RiderProjects\Demo-C\packages\WindowsAPICodePack-Shell.1.1.1\lib\Microsoft.WindowsAPICodePack.Shell.dll|
\ No newline at end of file
diff --git a/Tech/Tech.csproj.DotSettings.user b/Tech/Tech.csproj.DotSettings.user
new file mode 100644
index 0000000..b2ee538
--- /dev/null
+++ b/Tech/Tech.csproj.DotSettings.user
@@ -0,0 +1,2 @@
+
+ ACFE594E-F51C-4B73-9661-0144FF9E33A3/f:MainForm.resx
\ No newline at end of file