From 6d78e52605ade53349b89f9222808a7d9b4126a1 Mon Sep 17 00:00:00 2001 From: ww-rm Date: Tue, 25 Mar 2025 00:08:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BC=80=E5=A7=8B=E6=9A=82?= =?UTF-8?q?=E5=81=9C=E5=9B=BE=E6=A0=87=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controls/SpinePreviewer.Designer.cs | 74 ++++++----- SpineViewer/Controls/SpinePreviewer.cs | 48 +++++-- SpineViewer/Controls/SpinePreviewer.resx | 123 ++++++++++++++++++ SpineViewer/SpineViewer.csproj | 1 + 4 files changed, 204 insertions(+), 42 deletions(-) diff --git a/SpineViewer/Controls/SpinePreviewer.Designer.cs b/SpineViewer/Controls/SpinePreviewer.Designer.cs index 8ba3bd3..67b4d9f 100644 --- a/SpineViewer/Controls/SpinePreviewer.Designer.cs +++ b/SpineViewer/Controls/SpinePreviewer.Designer.cs @@ -28,13 +28,16 @@ /// private void InitializeComponent() { + components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SpinePreviewer)); panel = new Panel(); tableLayoutPanel1 = new TableLayoutPanel(); panel_Container = new Panel(); flowLayoutPanel1 = new FlowLayoutPanel(); - button_Stop = new Button(); button_Start = new Button(); - button_Pause = new Button(); + imageList = new ImageList(components); + button_Stop = new Button(); + toolTip = new ToolTip(components); tableLayoutPanel1.SuspendLayout(); panel_Container.SuspendLayout(); flowLayoutPanel1.SuspendLayout(); @@ -43,7 +46,7 @@ // panel // panel.BackColor = SystemColors.ControlDarkDark; - panel.Location = new Point(143, 124); + panel.Location = new Point(151, 136); panel.Margin = new Padding(0); panel.Name = "panel"; panel.Size = new Size(320, 320); @@ -77,7 +80,7 @@ panel_Container.Location = new Point(0, 0); panel_Container.Margin = new Padding(0); panel_Container.Name = "panel_Container"; - panel_Container.Size = new Size(641, 596); + panel_Container.Size = new Size(641, 594); panel_Container.TabIndex = 0; // // flowLayoutPanel1 @@ -85,44 +88,53 @@ flowLayoutPanel1.Anchor = AnchorStyles.None; flowLayoutPanel1.AutoSize = true; flowLayoutPanel1.AutoSizeMode = AutoSizeMode.GrowAndShrink; - flowLayoutPanel1.Controls.Add(button_Stop); flowLayoutPanel1.Controls.Add(button_Start); - flowLayoutPanel1.Controls.Add(button_Pause); - flowLayoutPanel1.Location = new Point(143, 596); + flowLayoutPanel1.Controls.Add(button_Stop); + flowLayoutPanel1.Location = new Point(254, 594); flowLayoutPanel1.Margin = new Padding(0); flowLayoutPanel1.Name = "flowLayoutPanel1"; - flowLayoutPanel1.Size = new Size(354, 40); + flowLayoutPanel1.Size = new Size(132, 42); flowLayoutPanel1.TabIndex = 1; // - // button_Stop - // - button_Stop.Location = new Point(3, 3); - button_Stop.Name = "button_Stop"; - button_Stop.Size = new Size(112, 34); - button_Stop.TabIndex = 0; - button_Stop.Text = "停止"; - button_Stop.UseVisualStyleBackColor = true; - button_Stop.Click += button_Stop_Click; - // // button_Start // - button_Start.Location = new Point(121, 3); + button_Start.AutoSize = true; + button_Start.AutoSizeMode = AutoSizeMode.GrowAndShrink; + button_Start.BackgroundImageLayout = ImageLayout.Center; + button_Start.ImageKey = "pause"; + button_Start.ImageList = imageList; + button_Start.Location = new Point(3, 3); button_Start.Name = "button_Start"; - button_Start.Size = new Size(112, 34); + button_Start.Padding = new Padding(15, 3, 15, 3); + button_Start.Size = new Size(60, 36); button_Start.TabIndex = 1; - button_Start.Text = "开始"; + toolTip.SetToolTip(button_Start, "开始/暂停"); button_Start.UseVisualStyleBackColor = true; button_Start.Click += button_Start_Click; // - // button_Pause + // imageList // - button_Pause.Location = new Point(239, 3); - button_Pause.Name = "button_Pause"; - button_Pause.Size = new Size(112, 34); - button_Pause.TabIndex = 2; - button_Pause.Text = "暂停"; - button_Pause.UseVisualStyleBackColor = true; - button_Pause.Click += button_Pause_Click; + imageList.ColorDepth = ColorDepth.Depth32Bit; + imageList.ImageStream = (ImageListStreamer)resources.GetObject("imageList.ImageStream"); + imageList.TransparentColor = Color.Transparent; + imageList.Images.SetKeyName(0, "start"); + imageList.Images.SetKeyName(1, "pause"); + imageList.Images.SetKeyName(2, "stop"); + // + // button_Stop + // + button_Stop.AutoSize = true; + button_Stop.AutoSizeMode = AutoSizeMode.GrowAndShrink; + button_Stop.ImageKey = "stop"; + button_Stop.ImageList = imageList; + button_Stop.Location = new Point(69, 3); + button_Stop.Name = "button_Stop"; + button_Stop.Padding = new Padding(15, 3, 15, 3); + button_Stop.Size = new Size(60, 36); + button_Stop.TabIndex = 0; + toolTip.SetToolTip(button_Stop, "停止更新并重置时间到初始"); + button_Stop.UseVisualStyleBackColor = true; + button_Stop.Click += button_Stop_Click; // // SpinePreviewer // @@ -136,6 +148,7 @@ tableLayoutPanel1.PerformLayout(); panel_Container.ResumeLayout(false); flowLayoutPanel1.ResumeLayout(false); + flowLayoutPanel1.PerformLayout(); ResumeLayout(false); } @@ -147,6 +160,7 @@ private FlowLayoutPanel flowLayoutPanel1; private Button button_Stop; private Button button_Start; - private Button button_Pause; + private ImageList imageList; + private ToolTip toolTip; } } diff --git a/SpineViewer/Controls/SpinePreviewer.cs b/SpineViewer/Controls/SpinePreviewer.cs index eacc056..c6f0aea 100644 --- a/SpineViewer/Controls/SpinePreviewer.cs +++ b/SpineViewer/Controls/SpinePreviewer.cs @@ -309,17 +309,40 @@ namespace SpineViewer.Controls /// /// 是否还在更新画面 /// - public bool IsUpdating { get; private set; } = true; + public bool IsUpdating + { + get => isUpdating; + private set + { + if (value == isUpdating) return; + if (value) + { + button_Start.ImageKey = "pause"; + } + else + { + button_Start.ImageKey = "start"; + } + isUpdating = value; + } + } + private bool isUpdating = true; /// /// 开始更新 /// - public void StartUpdate() => IsUpdating = true; + public void StartUpdate() + { + IsUpdating = true; + } /// /// 暂停更新 /// - public void PauseUpdate() => IsUpdating = false; + public void PauseUpdate() + { + IsUpdating = false; + } /// /// 停止更新, 将所有模型动画时间重置到 0 时刻 @@ -327,10 +350,13 @@ namespace SpineViewer.Controls public void StopUpdate() { IsUpdating = false; - lock (SpineListView.Spines) + if (SpineListView is not null) { - foreach (var spine in SpineListView.Spines) - spine.CurrentAnimation = spine.CurrentAnimation; + lock (SpineListView.Spines) + { + foreach (var spine in SpineListView.Spines) + spine.CurrentAnimation = spine.CurrentAnimation; + } } } @@ -586,12 +612,10 @@ namespace SpineViewer.Controls private void button_Start_Click(object sender, EventArgs e) { - StartUpdate(); - } - - private void button_Pause_Click(object sender, EventArgs e) - { - PauseUpdate(); + if (IsUpdating) + PauseUpdate(); + else + StartUpdate(); } } } diff --git a/SpineViewer/Controls/SpinePreviewer.resx b/SpineViewer/Controls/SpinePreviewer.resx index 8b2ff64..d1afa6b 100644 --- a/SpineViewer/Controls/SpinePreviewer.resx +++ b/SpineViewer/Controls/SpinePreviewer.resx @@ -117,4 +117,127 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs + LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu + SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA0hkAAAJNU0Z0AUkBTAIBAQMB + AAEIAQABCAEAARwBAAEcAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABcAMAARwDAAEBAQABIAYAATEa + AAMkATQDNgGcAxoB2wMaAdsDGgHbAxoB2wMmATsDDAEPAwIBA0wAAwcBCQMzAU4DPQGnAxoB2wMaAdsD + GgHbAxoB2wMaAdsDGgHbAzcBpgMvAUcDBAEFBAADBAEFAy8BRwM3AaYDGgHbAxoB2wMaAdsDGgHbAxoB + 2wMaAdsDPQGnAzMBTgMHAQkIAAMmBDgBqgMhAdgDGgHbAxoB2wMaAdsDGgHbAxoB2wMaAdsDGgHbAxoB + 2wMaAdsDGgHbAxoB2wMaAdsDGgHbAxoB2wMaAdsDGgHbAxoB2wMaAdsDGgHbAxoB2wMaAdsDMwHHA0YB + iQMcASZ0AAMFAQYDNQFUAy8BwwMDAf4DBAH+AwIB/gMAAf8DNgG+Az4BcgMmATcDDgESSAADIQEuAzoB + nAMUAe4DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DEAHuAzUBogMUARsEAAMVARwDNAGjAxAB7gMAAf8D + AAH/AwAB/wMAAf8DAAH/AwAB/wMUAe4DOgGcAyEBLggAAy8BrwMRAe8DAwH+AwAB/wMAAf8DAAH/AwAB + /wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB + /wMAAf8DAAH/AwsB+QMrAdkDRgGIdAADDwETA0QBggMpAdwDGAHuAzcBzgMzAcIDAAH/AxAB+AMoAdMD + PwGdAz0BaAMnATgDCAEKQAADKQE9Ay8BtgMAAf8DFAHuAzcBwQM4AbYDOAG2AzcByAMZAeoDAAH/AycB + wgMaASQEAAMdBCgBwwMAAf8DGQHqAzcByAM4AbYDOAG2AzcBxAMTAe8DAAH/Ay8BtgMpAT0EAAMIAQoD + GQHcAwAB/wMdAeoDNAHLAzgBtgM4AbYDOAG2AzgBtgM4AbYDOAG2AzgBtgM4AbYDOAG2AzgBtgM4AbYD + OAG2AzgBtgM4AbYDOAG2AzgBtgM4AbYDOAG2AzkBtwMzAcwDHQHrAwsB+QMzAcd0AAMUARsDSQGeAyMB + 6wMrAdcDRwGKAzgBXgMvAbYDLgHKAxAB8QMdAeoDNAHLAz4BnAMyAU4EATwAAykBPQMvAbYDAAH/AyQB + 1AM7AWMDMQFJAzEBSQNCAXQDLQHLAwAB/wMnAcIDGgEkBAADHwEsAycBxQMAAf8DLQHLA0IBdAMxAUkD + MQFJAz4BawMjAdYDAAH/Ay8BtgMpAT0EAAMrAT8DFQHkAwAB/wM0AcsDRAF9AzEBSQMxAUkDMQFJAzEB + SQMxAUkDMQFJAzEBSQMxAUkDMQFJAzEBSQMxAUkDMQFJAzEBSQMxAUkDMQFJAzEBSQMxAUkDMQFJAzEB + SgNEAX8DMwHMAwAB/wMaAdt0AAMUARsDSQGeAyMB6wMuAcgDOgFeAw0BEQMpAT0DOwFgAzQBtgMQAe4D + AAH/AxQB8QNAAbgDKgE/AyUBNAMLAQ40AAMpAT0DLwG2AwAB/wMnAcIDGgEkCAADKQE9Ay8BtgMAAf8D + JwHCAxoBJAQAAyABLgMmAcYDAAH/Ay8BtgMpAT0IAAMhAS8DJgHGAwAB/wMvAbYDKQE9BAADSQGKAxIB + 7gMAAf8DOAG2AzEBSUgABAEDMQFKAzkBtwMAAf8DGgHbdAADFAEbA0kBngMjAesDLgHIAzoBXgMHAQkE + AAMIAQoDLwFIAzcBpgMWAeUDDAH2AwkB+gM2AdsDRAHBAzEBUAMUARoDCAEKLAADKQE9Ay8BtgMAAf8D + JwHCAxoBJAgAAykBPQMvAbYDAAH/AycBwgMaASQEAAMgAS4DJgHGAwAB/wMvAbYDKQE9CAADIQEvAyYB + xgMAAf8DLwG2AykBPQQAA1IBqwMQAfMDAAH/AzgBtgMxAUlMAAMxAUkDOAG2AwAB/wMaAdt0AAMUARsD + SQGeAyMB6wMuAcgDOgFeAwcBCRAAAzEBSQM+AcIDAAH/AwAB/wMAAf8DBQH+AzoBswMvAUcsAAMpAT0D + LwG2AwAB/wMnAcIDGgEkCAADKQE9Ay8BtgMAAf8DJwHCAxoBJAQAAyABLgMmAcYDAAH/Ay8BtgMpAT0I + AAMhAS8DJgHGAwAB/wMvAbYDKQE9BAADUgGrAxAB8wMAAf8DOAG2AzEBSUwAAzEBSQM4AbYDAAH/AxoB + 23QAAxQBGwNJAZ4DIwHrAy4ByAM6AV4DBwEJEAADCAEKAyIBMQM+AX4DNgHbAwkB+gMBAf8DCwH0AzYB + sgM0AVIDGAEgJAADKQE9Ay8BtgMAAf8DJwHCAxoBJAgAAykBPQMvAbYDAAH/AycBwgMaASQEAAMgAS4D + JgHGAwAB/wMvAbYDKQE9CAADIQEvAyYBxgMAAf8DLwG2AykBPQQAA1IBqwMQAfMDAAH/AzgBtgMxAUlM + AAMxAUkDOAG2AwAB/wMaAdt0AAMUARsDSQGeAyMB6wMuAcgDOgFeAwcBCRQAAwYBBwMXAR4DKQE9A0EB + rwM5AdEDGAHuAxEB7gMjAdIDLwGvAykBPQMaASQDBwEJGAADKQE9Ay8BtgMAAf8DJwHCAxoBJAgAAykB + PQMvAbYDAAH/AycBwgMaASQEAAMgAS4DJgHGAwAB/wMvAbYDKQE9CAADIQEvAyYBxgMAAf8DLwG2AykB + PQQAA1IBqwMQAfMDAAH/AzgBtgMxAUlMAAMxAUkDOAG2AwAB/wMaAdt0AAMUARsDSQGeAyMB6wMuAcgD + OgFeAwcBCSAAAysBPgM6AWMDQAGmAygB4QMNAfoDCQH1Ay8BtgNDAYkDLwFIAxABFRQAAykBPQMvAbYD + AAH/AycBwgMaASQIAAMpAT0DLwG2AwAB/wMnAcIDGgEkBAADIAEuAyYBxgMAAf8DLwG2AykBPQgAAyEB + LwMmAcYDAAH/Ay8BtgMpAT0EAANSAasDEAHzAwAB/wM4AbYDMQFJTAADMQFJAzgBtgMAAf8DGgHbdAAD + FAEbA0kBngMjAesDLgHIAzoBXgMHAQkkAAMOARIDMAFKA0IBiQM0Ab8DEwH1AwAB/wMrAeEDQAGnAzsB + ZgMjATEDDQEQDAADKQE9Ay8BtgMAAf8DJwHCAxoBJAgAAykBPQMvAbYDAAH/AycBwgMaASQEAAMgAS4D + JgHGAwAB/wMvAbYDKQE9CAADIQEvAyYBxgMAAf8DLwG2AykBPQQAA1IBqwMQAfMDAAH/AzgBtgMxAUlM + AAMxAUkDOAG2AwAB/wMaAdt0AAMUARsDSQGeAyMB6wMuAcgDOgFeAwcBCSgAAwoBDAMaASQDNAFYAzsB + sAMnAcQDBwH3AxoB8QM3AdADQQGFAx8BKwwAAykBPQMvAbYDAAH/AycBwgMaASQIAAMpAT0DLwG2AwAB + /wMnAcIDGgEkBAADIAEuAyYBxgMAAf8DLwG2AykBPQgAAyEBLwMmAcYDAAH/Ay8BtgMpAT0EAANSAasD + EAHzAwAB/wM4AbYDMQFJTAADMQFJAzgBtgMAAf8DGgHbdAADFAEbA0kBngMjAesDLgHIAzoBXgMHAQkw + AAMHAQkDGAEgAx0BKQMlAcYDBwH2AwMB/gMyAbcDKgE/BAEIAAMpAT0DLwG2AwAB/wMnAcIDGgEkCAAD + KQE9Ay8BtgMAAf8DJwHCAxoBJAQAAyABLgMmAcYDAAH/Ay8BtgMpAT0IAAMhAS8DJgHGAwAB/wMvAbYD + KQE9BAADUgGrAxAB8wMAAf8DOAG2AzEBSUwAAzEBSQM4AbYDAAH/AxoB23QAAxQBGwNJAZ4DIwHrAy4B + yAM6AV4DBwEJPAADGgEkAycBwgMAAf8DLwHDAzUBVAMFAQYIAAMpAT0DLwG2AwAB/wMnAcIDGgEkCAAD + KQE9Ay8BtgMAAf8DJwHCAxoBJAQAAyABLgMmAcYDAAH/Ay8BtgMpAT0IAAMhAS8DJgHGAwAB/wMvAbYD + KQE9BAADUgGrAxAB8wMAAf8DOAG2AzEBSUwAAzEBSQM4AbYDAAH/AxoB23QAAxQBGwNJAZ4DIwHrAy4B + yAM6AV4DBwEJMAADBwEJAxcBHwMaASQDJQHGAwcB9gMAAf8DMAG4AysBQAQBCAADKQE9Ay8BtgMAAf8D + JwHCAxoBJAgAAykBPQMvAbYDAAH/AycBwgMaASQEAAMgAS4DJgHGAwAB/wMvAbYDKQE9CAADIQEvAyYB + xgMAAf8DLwG2AykBPQQAA1IBqwMQAfMDAAH/AzgBtgMxAUlMAAMxAUkDOAG2AwAB/wMaAdt0AAMUARsD + SQGeAyMB6wMuAcgDOgFeAwcBCSgAAwMBBAMSARgDMgFSAzwBrwMnAcIDBwH2AxkB8gM0AdYDQQGMAyEB + LgwAAykBPQMvAbYDAAH/AycBwgMaASQIAAMpAT0DLwG2AwAB/wMnAcIDGgEkBAADIAEuAyYBxgMAAf8D + LwG2AykBPQgAAyEBLwMmAcYDAAH/Ay8BtgMpAT0EAANSAasDEAHzAwAB/wM4AbYDMQFJTAADMQFJAzgB + tgMAAf8DGgHbdAADFAEbA0kBngMjAesDLgHIAzoBXgMHAQkkAAMOARIDKQE8Az8BdAM7AbQDEwH1AwAB + /wMXAfMDPAGvAz0BbAMmATcDDQERDAADKQE9Ay8BtgMAAf8DJwHCAxoBJAgAAykBPQMvAbYDAAH/AycB + wgMaASQEAAMgAS4DJgHGAwAB/wMvAbYDKQE9CAADIQEvAyYBxgMAAf8DLwG2AykBPQQAA1IBqwMQAfMD + AAH/AzgBtgMxAUlMAAMxAUkDOAG2AwAB/wMaAdt0AAMUARsDSQGeAyMB6wMuAcgDOgFeAwcBCSAAAyoB + PAM6AWIDPwGcAzAB0wMYAfIDCQH1Ay8BtgM+AaQDMgFSAxIBGAQCEAADKQE9Ay8BtgMAAf8DJwHCAxoB + JAgAAykBPQMvAbYDAAH/AycBwgMaASQEAAMgAS4DJgHGAwAB/wMvAbYDKQE9CAADIQEvAyYBxgMAAf8D + LwG2AykBPQQAA1IBqwMQAfMDAAH/AzgBtgMxAUlMAAMxAUkDOAG2AwAB/wMaAdt0AAMUARsDSQGeAyMB + 6wMuAcgDOgFeAwcBCRgAAwcBCQMpAT0DQwGqAzoBzwMYAe4DDwHyAyIB2AMvAbEDKQE9AyQBMwMLAQ4Y + AAMpAT0DLwG2AwAB/wMnAcIDGgEkCAADKQE9Ay8BtgMAAf8DJwHCAxoBJAQAAyABLgMmAcYDAAH/Ay8B + tgMpAT0IAAMhAS8DJgHGAwAB/wMvAbYDKQE9BAADUgGrAxAB8wMAAf8DOAG2AzEBSUwAAzEBSQM4AbYD + AAH/AxoB23QAAxQBGwNJAZ4DIwHrAy4ByAM6AV4DBwEJEAADCAEKAxUBHAMpAT8DNgHbAw4B+AMBAf8D + CwH1AzUBvQM9AWYDGwElJAADKQE9Ay8BtgMAAf8DJwHCAxoBJAgAAykBPQMvAbYDAAH/AycBwgMaASQE + AAMgAS4DJgHGAwAB/wMvAbYDKQE9CAADIQEvAyYBxgMAAf8DLwG2AykBPQQAA1IBqwMQAfMDAAH/AzgB + tgMxAUlMAAMxAUkDOAG2AwAB/wMaAdt0AAMUARsDSQGeAyMB6wMuAcgDOgFeAwcBCRAAAzEBSQM+AcID + AAH/AwAB/wMAAf8DAAH/AzgBtgMxAUksAAMpAT0DLwG2AwAB/wMnAcIDGgEkCAADKQE9Ay8BtgMAAf8D + JwHCAxoBJAQAAyABLgMmAcYDAAH/Ay8BtgMpAT0IAAMhAS8DJgHGAwAB/wMvAbYDKQE9BAADUgGrAxAB + 8wMAAf8DOAG2AzEBSUwAAzEBSQM4AbYDAAH/AxoB23QAAxQBGwNJAZ4DIwHrAy4ByAM6AV4DBwEJBAAD + BAEFAysEQAGZAygB3AMMAfYDBQH9Ax4B8wNCAcQDMQFQAxQBGgMIAQosAAMpAT0DLwG2AwAB/wMnAcID + GgEkCAADKQE9Ay8BtgMAAf8DJwHCAxoBJAQAAyABLgMmAcYDAAH/Ay8BtgMpAT0IAAMhAS8DJgHGAwAB + /wMvAbYDKQE9BAADUgGrAxAB8wMAAf8DOAG2AzEBSUwAAzEBSQM4AbYDAAH/AxoB23QAAxQBGwNJAZ4D + IwHrAy4ByAM6AV4DDQERAykBPQMzAVADNQGvAxcB6QMHAfwDFAHxAz0BxANDAZUDLAFBAwsBDjQAAykB + PQMvAbYDAAH/AycBwgMaASQIAAMpAT0DLwG2AwAB/wMnAcIDGgEkBAADIAEuAyYBxgMAAf8DLwG2AykB + PQgAAyEBLwMmAcYDAAH/Ay8BtgMpAT0EAANMAZIDEgHvAwAB/wM4AbYDMQFJTAADMQFJAzgBtgMAAf8D + GgHbdAADFAEbA0kBngMjAesDLQHQA0YBfgM3AVsDLwG2Ay8BwQMQAe4DHQHqAzQBywM+AZwDNQFVAyIB + MAMGAQc4AAMpAT0DLwG2AwAB/wMkAdQDOwFjAzEBSQMxAUkDQgF0Ay0BywMAAf8DJwHCAxoBJAQAAx8B + LAMnAcUDAAH/Ay0BywNCAXQDMQFJAzEBSQM+AWsDIwHWAwAB/wMvAbYDKQE9BAADMgFOAxYB5gMAAf8D + NAHLA0QBfQMxAUkDMQFJAzEBSQMxAUkDMQFJAzEBSQMxAUkDMQFJAzEBSQMxAUkDMQFJAzEBSQMxAUkD + MQFJAzEBSQMxAUkDMQFJAzEBSQMxAUkDRAF9AzQBywMAAf8DGgHbdAADDwETA0UBgwMoAd0DIQHkA0EB + vQM2Ab4DAAH/AwQB/gMfAekDQAGpAz0BaQMnATgDCAEKQAADKQE9Ay8BtgMAAf8DFAHuAzcBwQM4AbYD + OAG2AzcByAMZAeoDAAH/AycBwgMaASQEAAMdBCgBwwMAAf8DGQHqAzcByAM4AbYDOAG2AzcBxAMTAe8D + AAH/Ay8BtgMpAT0EAAMPARMDGAHdAwAB/wMdAeoDNAHLAzgBtgM4AbYDOAG2AzgBtgM4AbYDOAG2AzgB + tgM4AbYDOAG2AzgBtgM4AbYDOAG2AzgBtgM4AbYDOAG2AzgBtgM4AbYDOAG2AzgBtgM0AcsDHQHqAwEB + /wMdAdl0AAMGAQcDNgFWAy8BxAMOAfkDGAH0AwgB/AMAAf8DKAHIA0MBmgMyAU0DDgESSAADIQEuAzoB + nAMUAe4DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DEAHuAzUBogMUARsEAAMVARwDNAGjAxEB7gMAAf8D + AAH/AwAB/wMAAf8DAAH/AwAB/wMUAe4DOgGcAyEBLggAAy8BrwMMAfEDAAH/AwAB/wMAAf8DAAH/AwAB + /wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB + /wMAAf8DAAH/AwAB/wMOAfADNQGseAADJQE1AzYBnAMXAeIDFAHoAxgB3gMaAdsDKAE+AxMBGgMHAQlM + AAMHAQkDMwFOAz0BpwMZAeADEQHwAxAB8wMQAfMDEgHuAxcB4gM2AacDLwFHAwQBBQQAAwUBBgMxAUoD + NgGqAxUB5AMSAe8DEAHzAxAB8wMRAfADGQHgAz0BpwMzAU4DBwEJCAADJwE5Ay8BrwMYAd0DFgHmAxIB + 7wMQAfMDEAHzAxAB8wMQAfMDEAHzAxAB8wMQAfMDEAHzAxAB8wMQAfMDEAHzAxAB8wMQAfMDEAHzAxAB + 8wMQAfMDEAHzAxMB7gMVAeQDGQHcAy8BrwMnATmAAAMmATUDOwFhAxQBG2gAAx4BKQNMAZMDUgGrA1IB + qwNIAYYDJgE3AwMBBBQAAwoBDQMuAUQDSgGNA1IBqwNSAasDTAGTAx4BKRwAAw8BEwMyAU0DTAGSA1IB + qwNSAasDUgGrA1IBqwNSAasDUgGrA1IBqwNSAasDUgGrA1IBqwNSAasDUgGrA1IBqwNSAasDUgGrA1IB + qwNSAasDSgGLAywBQQMJAQt4AAFCAU0BPgcAAT4DAAEoAwABcAMAARwDAAEBAQABAQUAAcABARYAA/8B + AAHAAR8B/wH8AQABIAEBAYAIAAGAAQ8B/wH8AQABIAEBAYAIAAGAAQMB/wH8AQABIAEBCQABgAEBAf8B + /AEAASABAQkAAYABAAF/AfwBGAEgAcEBBwH/Af4GAAGBAQABHwH8ARgBIAHBAQcC/wYAAYEB4AEfAfwB + GAEgAcEBBwL/BgABgQHgAQcB/AEYASABwQEHAv8GAAGBAfABAAH8ARgBIAHBAQcC/wYAAYEB/gEAAXwB + GAEgAcEBBwL/BgABgQH/AQABHAEYASABwQEHAv8GAAGBAf8BgAEcARgBIAHBAQcC/wYAAYEB/wHgAQwB + GAEgAcEBBwL/BgABgQH/AfwBDAEYASABwQEHAv8GAAGBAf8B4AEMARgBIAHBAQcC/wYAAYEB/wGAARwB + GAEgAcEBBwL/BgABgQH/AQABHAEYASABwQEHAv8GAAGBAf4BAAE8ARgBIAHBAQcC/wYAAYEB+AEAAfwB + GAEgAcEBBwL/BgABgQHgAQcB/AEYASABwQEHAv8GAAGBAeABHwH8ARgBIAHBAQcC/wYAAYEBAAEfAfwB + GAEgAcEBBwL/BgABgAEAAX8B/AEYASABwQEHAv8GAAGAAQAB/wH8AQABIAEBCQABgAEDAf8B/AEAASAB + AQkAAYABDwH/AfwBAAEgAQEBgAgAAcABHwH/AfwBAAEgAQEBgAgAAfED/wGAAfgBDwHgAgABMAUACw== + + + + 165, 17 + \ No newline at end of file diff --git a/SpineViewer/SpineViewer.csproj b/SpineViewer/SpineViewer.csproj index eac78a2..9d906f7 100644 --- a/SpineViewer/SpineViewer.csproj +++ b/SpineViewer/SpineViewer.csproj @@ -12,6 +12,7 @@ WinExe true appicon.ico + false