Commit b58ab1bb authored by Rabbit's avatar Rabbit
Browse files

修复了创建多个同背景图片的ListLabel崩溃的问题

parent 45dcd38c
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
namespace CountDownList.Class
{
    /// <summary>
    /// 背景画刷的获取和生成
    /// </summary>
    public class CountDownBackground
    {
        public CountDownBackground() { }
    }

}
+2 −0
Original line number Diff line number Diff line
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.Contracts;
using System.Diagnostics.Metrics;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Automation.Peers;
+4 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
    <None Remove="Data\Image\2.jpg" />
    <None Remove="Data\Image\3.png" />
    <None Remove="Data\Image\4.jpg" />
    <None Remove="handle64.exe" />
    <None Remove="UI\Icon\0-more.png" />
    <None Remove="UI\Icon\1-Del.png" />
    <None Remove="UI\Icon\2-Hid.png" />
@@ -41,6 +42,9 @@
    <Content Include="Data\Image\4.jpg">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Include="handle64.exe">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Include="UI\Icon\0-more.png">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
+4 −4
Original line number Diff line number Diff line
@@ -99,15 +99,15 @@
                </TextBlock>

                <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
                    <Button Padding="0,0,0,0" Width="28" Background="Transparent" BorderBrush="{x:Null}" Click="Button_Click">
                    <Button Padding="0,0,0,0" Width="28" Background="Transparent" BorderBrush="{x:Null}" Click="Button_Click" ToolTip="展开/折叠">
                        <Image Source="/UI/Icon/collapse.png" Width="24" RenderOptions.BitmapScalingMode="Fant"/>
                    </Button>

                    <Button Padding="0,0,0,0" Width="28" Background="Transparent" BorderBrush="{x:Null}" Click="Button_Click_3">
                    <Button Padding="0,0,0,0" Width="28" Background="Transparent" BorderBrush="{x:Null}" Click="Button_Click_3" ToolTip="打开主界面">
                        <Image Source="/UI/Icon/Home.png" Width="16" RenderOptions.BitmapScalingMode="Fant"/>
                    </Button>

                    <Button Padding="0,0,0,0" Width="28" Background="Transparent" BorderBrush="{x:Null}" Click="Button_Click_1">
                    <Button Padding="0,0,0,0" Width="28" Background="Transparent" BorderBrush="{x:Null}" Click="Button_Click_1" ToolTip="关闭程序">
                        <Image Source="/UI/Icon/Close.png" Width="14" RenderOptions.BitmapScalingMode="Fant"/>
                    </Button>
                </StackPanel>
@@ -132,7 +132,7 @@
                </TransformGroup>
            </Border.RenderTransform>
            <Grid Margin="0,4,0,4">
                <local:MyScrollViewer x:Name="sv" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Standard" VerticalScrollBarVisibility="Hidden">
                <local:MyScrollViewer x:Name="sv" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Standard" VerticalScrollBarVisibility="Hidden" Focusable="False">
                    <local:MyScrollViewer.OpacityMask>
                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                            <GradientStop Color="Transparent"/>
+38 −3
Original line number Diff line number Diff line
@@ -164,8 +164,25 @@ namespace CountDownList.UI.Window
                FileInfo file = new FileInfo(dialog.FileName);
                if (file.Exists)
                {
                    //true 覆盖已存在的同名文件,false不覆盖
                    file.CopyTo($@"{AppDomain.CurrentDomain.BaseDirectory}Data\Image\{Path.GetFileName(dialog.FileName)}", true);
                    // 创建文件流并读取文件
                    using (FileStream sourceStream = new FileStream(dialog.FileName, FileMode.Open))
                    {
                        FileInfo info = new FileInfo($@"{AppDomain.CurrentDomain.BaseDirectory}Data\Image\{Path.GetFileName(dialog.FileName)}");
                        if (!info.Exists)
                        {
                            using (FileStream destStream = new FileStream($@"{AppDomain.CurrentDomain.BaseDirectory}Data\Image\{Path.GetFileName(dialog.FileName)}", FileMode.Create))
                            {
                                // 创建一个缓冲区来存储读取的数据
                                byte[] buffer = new byte[1024];
                                // 读取数据写入到目标文件流
                                int bytesRead;
                                while ((bytesRead = sourceStream.Read(buffer, 0, buffer.Length)) > 0)
                                {
                                    destStream.Write(buffer, 0, bytesRead);
                                }
                            }
                        }
                    }

                    ImageBrush i = new();
                    i.ImageSource = new BitmapImage(new Uri($@"Data\Image\{Path.GetFileName(dialog.FileName)}", UriKind.Relative));
@@ -180,6 +197,24 @@ namespace CountDownList.UI.Window
            }
        }

        public string? Handle64(string fileName)
        {
            Process handle64 = new Process();
            handle64.StartInfo.FileName = "handle64.exe";
            handle64.StartInfo.Arguments = fileName + " /accepteula";
            handle64.StartInfo.UseShellExecute = false;
            handle64.StartInfo.RedirectStandardOutput = true;
            handle64.StartInfo.CreateNoWindow = true;//启动进程时不创建新窗口,使其在后台运行。
            handle64.Start();
            handle64.WaitForExit();

            return handle64.StandardOutput.ReadToEnd();
            //foreach (Match match in Regex.Matches(outputTool, @"(?<=\s+pid:\s+)\b(\d+)\b(?=\s+)"))
            //{
            //    Process.GetProcessById(int.Parse(match.Value)).Kill();
            //}
        }

        private void title_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
        {
            preview.Title = title.Text;
Loading