using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundation.Collections; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Controls.Primitives; using Microsoft.UI.Xaml.Data; using Microsoft.UI.Xaml.Input; using Microsoft.UI.Xaml.Media; using Microsoft.UI.Xaml.Navigation; using RustTools.muqing; using Newtonsoft.Json; using RustTools.DataList; using RustTools.Helpers; using System.Collections.ObjectModel; // To learn more about WinUI, the WinUI project structure, // and more about our project templates, see: http://aka.ms/winui-project-info. namespace RustTools.WindowUI; /// /// An empty page that can be used on its own or navigated to within a Frame. /// public sealed partial class ModulePage : WindowEx { public static List ModulePageList = new(); public ObservableCollection ScreenshotsList =new(); public ModInfo.Data Mod { get; set; } = new(); public ModulePage(string v) { gj.SetBackTheme(this); InitializeComponent(); ExtendsContentIntoTitleBar = true; init(v); } private async void init(string v) { var json = await ApiFox.mod.getInfo("", v); var a = JsonConvert.DeserializeObject(json); if (a != null) { Mod = a.data; Mod.IconUrl = Mod.IconUrl.Equals("") ? "/Assets/image/image_106.svg" : Mod.IconUrl.Replace("..", wl.api); Mod.Link = Mod.Link.Replace("..", wl.api); Title = Mod.Name; var l = " | "; title_b.Text = "单位数" + Mod.UnitNumber + l + Mod.DownloadNumber + "次下载" + l + "版本名称" + Mod.VersionName; title_c.Text = "发布时间:" + Mod.CreationTime + " 最近更新:" + Mod.UpdateTime; var ScrList = Mod.Screenshots.Split(","); foreach (var s in ScrList) { gj.sc(s); if (string.IsNullOrEmpty(s)) { continue; } ScreenshotsList.Add(s.Replace("..", wl.api)); } if (ScreenshotsList.Count > 0) { fliptext.Visibility = Visibility.Visible; flipview.Visibility = Visibility.Visible; } else { fliptext.Visibility = Visibility.Collapsed; flipview.Visibility = Visibility.Collapsed; } grid.DataContext = this; // 设置数据上下文 } } private void WindowEx_SizeChanged(object sender, WindowSizeChangedEventArgs args) { DescriptionText.Width = Width-50; } private void WindowEx_Closed(object sender, WindowEventArgs args) { // 当窗口关闭时,从列表中移除 ModulePageList.Remove(this); } private void AppBarButton_Click(object sender, RoutedEventArgs e) { var label = ((AppBarButton)sender).Name; gj.sc(label); switch (label) { case "ReportButton": gj.sc("举报这个模组抄袭"); //if (Toast.IsOpen) Toast.IsOpen = false; Toast.Title = "举报此模组"; Toast.Subtitle = "请合理举报,拒接无脑举报!"; Toast.IsOpen = true; break; case "LikeButton": gj.sc("给这个模组投了一个币"); //if (Toast.IsOpen) Toast.IsOpen = false; Toast.Title = "支持此模组"; Toast.Subtitle = "支持后自动扣除你的一个硬币,如果没有则支持失败"; Toast.IsOpen = true; break; case "DownLoadButton": gj.sc("下载此模组:"+Mod.Link); break; } } private void Toast_ActionButtonClick(TeachingTip sender, object args) { } }