Loading CountDownList/App.config +6 −0 Original line number Diff line number Diff line Loading @@ -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 CountDownList/App.xaml.cs +2 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ namespace CountDownList /// </summary> public partial class App : Application { #if !DEBUG public App() { //首先注册开始和退出事件 Loading Loading @@ -77,5 +78,6 @@ namespace CountDownList window.ShowDialog(); //e.SetObserved();//设置该异常已察觉(这样处理后就不会引起程序崩溃) } #endif } } CountDownList/AssemblyInfo.cs +2 −8 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ using System.Windows; // // 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值, // 方法是按如下所示使用“*”: [assembly: AssemblyVersion("1.2.0.*")] [assembly: AssemblyVersion("1.2.2.*")] /// <summary> /// 使用此类前需要把[assembly: ComVisible(false)]改为true Loading Loading @@ -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> /// 说明 Loading CountDownList/Class/ListCore.cs +104 −6 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -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); Loading Loading @@ -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 } } CountDownList/Class/XML.cs +185 −152 Original line number Diff line number Diff line Loading @@ -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(); Loading Loading @@ -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 Loading @@ -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(); Loading Loading @@ -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; } Loading Loading @@ -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 Loading
CountDownList/App.config +6 −0 Original line number Diff line number Diff line Loading @@ -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
CountDownList/App.xaml.cs +2 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ namespace CountDownList /// </summary> public partial class App : Application { #if !DEBUG public App() { //首先注册开始和退出事件 Loading Loading @@ -77,5 +78,6 @@ namespace CountDownList window.ShowDialog(); //e.SetObserved();//设置该异常已察觉(这样处理后就不会引起程序崩溃) } #endif } }
CountDownList/AssemblyInfo.cs +2 −8 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ using System.Windows; // // 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值, // 方法是按如下所示使用“*”: [assembly: AssemblyVersion("1.2.0.*")] [assembly: AssemblyVersion("1.2.2.*")] /// <summary> /// 使用此类前需要把[assembly: ComVisible(false)]改为true Loading Loading @@ -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> /// 说明 Loading
CountDownList/Class/ListCore.cs +104 −6 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -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); Loading Loading @@ -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 } }
CountDownList/Class/XML.cs +185 −152 Original line number Diff line number Diff line Loading @@ -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(); Loading Loading @@ -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 Loading @@ -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(); Loading Loading @@ -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; } Loading Loading @@ -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