Commit 8ba486ca authored by Rabbit's avatar Rabbit
Browse files

新增随机背景设置项,新增一些图片集

parent ad5306f3
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -40,6 +40,12 @@
            <setting name="HomePreview" serializeAs="String">
                <value>False</value>
            </setting>
            <setting name="UpdateTip" serializeAs="String">
                <value>True</value>
            </setting>
            <setting name="RandomMode" serializeAs="String">
                <value>3</value>
            </setting>
        </CountDownList.MiscSetting>
    </userSettings>
</configuration>
 No newline at end of file
+2 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ namespace CountDownList
    /// </summary>
    public partial class App : Application
    {
#if !DEBUG
        public App()
        {
            //首先注册开始和退出事件
@@ -77,5 +78,6 @@ namespace CountDownList
            window.ShowDialog();
            //e.SetObserved();//设置该异常已察觉(这样处理后就不会引起程序崩溃)
        }
#endif
    }
}
+2 −8
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ using System.Windows;
//
// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
// 方法是按如下所示使用“*”:
[assembly: AssemblyVersion("1.2.0.*")]
[assembly: AssemblyVersion("1.2.2.*")]

/// <summary>
/// 使用此类前需要把[assembly: ComVisible(false)]改为true
@@ -63,13 +63,7 @@ class AssemblyInformation
    /// <summary>
    /// 版本
    /// </summary>
    public string AssemblyVersion
    {
        get
        {
            return Assembly.GetExecutingAssembly().GetName().Version.ToString();
        }
    }
    public string AssemblyVersion => Assembly.GetExecutingAssembly().GetName().Version.ToString();

    /// <summary>
    /// 说明
+104 −6
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ using System.Windows.Media.Imaging;
using CountDownList.Controls;
using CountDownList.UI.Window;
using HandyControl.Controls;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window;

namespace CountDownList.Class
{
@@ -775,12 +776,7 @@ namespace CountDownList.Class
        /// <returns>最终同意了更改,返回True,否则返回False</returns>
        public Boolean OpenNewEditWindow()
        {
            ImageBrush background = new ();
            background.Stretch = Stretch.UniformToFill;

            background.ImageSource = new BitmapImage(new Uri(@"UI\test.png", UriKind.Relative));

            ListLabel labelElement = new ListLabel("无标题", DateTime.Now, DateTime.Now.AddDays(1), "dd\\天hh\\:mm\\:ss", false, background, false);
            ListLabel labelElement = new ListLabel("无标题", DateTime.Now, DateTime.Now.AddDays(1), "dd\\天hh\\:mm\\:ss", false, GenerateRandomImage((ExtraMode)MiscSetting.Default.RandomMode), false);

            var window = new EditWindow(labelElement);

@@ -891,5 +887,107 @@ namespace CountDownList.Class
            Rect rect = new Rect(0.0, 0.0, container.ActualWidth, container.ActualHeight);
            return rect.Contains(bounds.TopLeft) || rect.Contains(bounds.BottomRight);
        }

        /// <summary>
        /// 生成随机图片
        /// <param name="ExtraMode">
        /// 扩展模式:
        /// </param>
        /// <returns>文件内图片画刷随机结果</returns>
        public static Brush GenerateRandomImage(ExtraMode ExtraMode)
        {
            switch (ExtraMode)
            {
                case ExtraMode.MinecraftOnly:
                    ImageBrush mcO = new();
                    mcO.ImageSource = new BitmapImage(new Uri($@"UI\test.png", UriKind.RelativeOrAbsolute));
                    mcO.Stretch = Stretch.UniformToFill;

                    return mcO;
                case ExtraMode.Minecraft:
                    //获取文件列表
                    string imageSourceDirMc = $"{AppDomain.CurrentDomain.BaseDirectory}Data\\RandomImg\\Minecraft";
                    System.IO.DirectoryInfo directory = new System.IO.DirectoryInfo(imageSourceDirMc);
                    var files = directory.GetFiles("*.*", System.IO.SearchOption.TopDirectoryOnly);
                    List<string> ImgList = files.Select(s => s.FullName).ToList();

                    //索引列表
                    Random rnd = new();
                    string file = ImgList[rnd.Next(0,ImgList.Count)];
                    
                    //创建ImageBrush实例
                    ImageBrush mc = new();
                    mc.ImageSource = new BitmapImage(new Uri(file, UriKind.RelativeOrAbsolute));
                    mc.Stretch = Stretch.UniformToFill;

                    return mc;
                case ExtraMode.GenshinExtra:
                    //获取文件列表
                    string imageSourceDirYsE = $"{AppDomain.CurrentDomain.BaseDirectory}Data\\RandomImg\\GenshinExtra";
                    System.IO.DirectoryInfo directoryYsE = new System.IO.DirectoryInfo(imageSourceDirYsE);
                    var filesYsE = directoryYsE.GetFiles("*.*", System.IO.SearchOption.TopDirectoryOnly);
                    List<string> ImgListYsE = filesYsE.Select(s => s.FullName).ToList();

                    //索引列表
                    Random rndYsE = new();
                    string fileYsE = ImgListYsE[rndYsE.Next(0, ImgListYsE.Count)];

                    //创建ImageBrush实例
                    ImageBrush mcYsE = new();
                    mcYsE.ImageSource = new BitmapImage(new Uri(fileYsE, UriKind.RelativeOrAbsolute));
                    mcYsE.Stretch = Stretch.UniformToFill;

                    return mcYsE;
                case ExtraMode.GenshinNormal:
                    //获取文件列表
                    string imageSourceDirYs = $"{AppDomain.CurrentDomain.BaseDirectory}Data\\RandomImg\\GenshinNormal";
                    System.IO.DirectoryInfo directoryYs = new System.IO.DirectoryInfo(imageSourceDirYs);
                    var filesYs = directoryYs.GetFiles("*.*", System.IO.SearchOption.TopDirectoryOnly);
                    List<string> ImgListYs = filesYs.Select(s => s.FullName).ToList();

                    //索引列表
                    Random rndYs = new();
                    string fileYs = ImgListYs[rndYs.Next(0, ImgListYs.Count)];

                    //创建ImageBrush实例
                    ImageBrush mcYs = new();
                    mcYs.ImageSource = new BitmapImage(new Uri(fileYs, UriKind.RelativeOrAbsolute));
                    mcYs.Stretch = Stretch.UniformToFill;

                    return mcYs;
                case ExtraMode.Custom:
                    //获取文件列表
                    string imageSourceDir = $"{AppDomain.CurrentDomain.BaseDirectory}Data\\RandomImg\\GenshinExtra";
                    System.IO.DirectoryInfo directoryc = new System.IO.DirectoryInfo(imageSourceDir);
                    var filesc = directoryc.GetFiles("*.*", System.IO.SearchOption.TopDirectoryOnly);
                    List<string> ImgListc = filesc.Select(s => s.FullName).ToList();

                    //索引列表
                    Random rndc = new();
                    string filec = ImgListc[rndc.Next(0, ImgListc.Count)];

                    //创建ImageBrush实例
                    ImageBrush mcc = new();
                    mcc.ImageSource = new BitmapImage(new Uri(filec, UriKind.RelativeOrAbsolute));
                    mcc.Stretch = Stretch.UniformToFill;

                    return mcc;
                default:
                    ImageBrush mcO2 = new();
                    mcO2.ImageSource = new BitmapImage(new Uri($@"UI\test.png", UriKind.RelativeOrAbsolute));
                    mcO2.Stretch = Stretch.UniformToFill;

                    return mcO2;
            }
        }
    }

    public enum ExtraMode
    {
        MinecraftOnly,
        Minecraft,
        GenshinExtra,
        GenshinNormal,
        Custom
    }
}
+185 −152
Original line number Diff line number Diff line
@@ -27,15 +27,26 @@ namespace CountDownList.Class

        public event EventHandler<LoadingEventArgs> ReadLabelsEvent;
        public CountCownListXml() 
        {
            FileInfo fileInfo = new($@"{AppDomain.CurrentDomain.BaseDirectory}Data\CountDownList.xml");
            if (fileInfo.Exists)
            {
                xmlDoc.Load($"{AppDomain.CurrentDomain.BaseDirectory}\\Data\\CountDownList.xml");
            }
            else
            {

            }
        }

        /// <summary>
        /// 保存ListLabel到xml
        /// </summary>
        /// <param name="labels">包含多个ListLabels的列表</param>
        public void WriteListLabels(List<Controls.ListLabel> labels)
        {
            FileInfo fileInfo = new($@"{AppDomain.CurrentDomain.BaseDirectory}Data\CountDownList.xml");
            if (fileInfo.Exists)
            {
                XmlNode rootNode = xmlDoc.SelectSingleNode("shRabbit").SelectSingleNode("CountDownList");
                rootNode.RemoveAll();
@@ -77,6 +88,16 @@ namespace CountDownList.Class
                //保存更改
                xmlDoc.Save($"{AppDomain.CurrentDomain.BaseDirectory}\\Data\\CountDownList.xml");
            }
            else
            {
                //潮流法创建xml
                string result1 = $@"{AppDomain.CurrentDomain.BaseDirectory}Data\CountDownList.xml";
                FileStream fs = new FileStream(result1, FileMode.Create);
                StreamWriter wr = new StreamWriter(fs);
                wr.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n<shRabbit>\r\n\t<CountDownList>\r\n\t</CountDownList>\r\n</shRabbit>");
                wr.Close();
            }        
        }

        /// <summary>
        /// 从xml获取ListLabel
@@ -84,6 +105,11 @@ namespace CountDownList.Class
        /// <returns>包含多个ListLabels的列表</returns>
        public List<Controls.ListLabel> GetListLabels()
        {
            FileInfo fileInfo = new($@"{AppDomain.CurrentDomain.BaseDirectory}Data\CountDownList.xml");
            if (fileInfo.Exists)
            {
                //存在时扫描标签

                string output = "";

                List<Controls.ListLabel> result = new();
@@ -182,7 +208,7 @@ namespace CountDownList.Class
                            {
                                if (File.Exists($@"{AppDomain.CurrentDomain.BaseDirectory}{backgroundRaw}"))
                                {
                                ib.ImageSource = new BitmapImage(new Uri(backgroundRaw, UriKind.Relative));
                                    ib.ImageSource = new BitmapImage(new Uri(backgroundRaw, UriKind.RelativeOrAbsolute));
                                    ib.Stretch = Stretch.UniformToFill;
                                    brush = ib;
                                }
@@ -243,6 +269,13 @@ namespace CountDownList.Class
                }
                return result;
            }
            else
            {
                List<Controls.ListLabel> lb = new List<Controls.ListLabel>();
                lb.Add(new($"欢迎使用CountDownList{new AssemblyInformation().AssemblyVersion}", DateTime.Now, new(), "dd\\天hh\\:mm\\:ss", false, ListCore.GenerateRandomImage(ExtraMode.GenshinNormal), true, false, false));
                return lb;
            }
        }
    }

    public static class LoadingProgress
Loading