mirror of
https://jihulab.com/DGP-Studio/Snap.Hutao.git
synced 2025-11-19 21:02:53 +08:00
add installer
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -11,6 +11,10 @@ src/Snap.Hutao/Snap.Hutao/bin/
|
||||
src/Snap.Hutao/Snap.Hutao/obj/
|
||||
src/Snap.Hutao/Snap.Hutao/Snap.Hutao_TemporaryKey.pfx
|
||||
|
||||
src/Snap.Hutao/Snap.Hutao.Installer/bin/
|
||||
src/Snap.Hutao/Snap.Hutao.Installer/obj/
|
||||
src/Snap.Hutao/Snap.Hutao.Installer/Properties/PublishProfiles/FolderProfile.pubxml.user
|
||||
|
||||
src/Snap.Hutao/Snap.Hutao.SourceGeneration/bin/
|
||||
src/Snap.Hutao/Snap.Hutao.SourceGeneration/obj/
|
||||
|
||||
|
||||
@@ -36,5 +36,4 @@
|
||||
* [microsoft/vs-threading](https://github.com/microsoft/vs-threading)
|
||||
* [microsoft/vs-validation](https://github.com/microsoft/vs-validation)
|
||||
* [microsoft/WindowsAppSDK](https://github.com/microsoft/WindowsAppSDK)
|
||||
* [microsoft/microsoft-ui-xaml](https://github.com/microsoft/microsoft-ui-xaml)
|
||||
* [MiniExcel/MiniExcel](https://github.com/MiniExcel/MiniExcel)
|
||||
* [microsoft/microsoft-ui-xaml](https://github.com/microsoft/microsoft-ui-xaml)
|
||||
72
src/Snap.Hutao/Snap.Hutao.Installer/Program.cs
Normal file
72
src/Snap.Hutao/Snap.Hutao.Installer/Program.cs
Normal file
@@ -0,0 +1,72 @@
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Snap.Hutao.Installer;
|
||||
|
||||
internal class Program
|
||||
{
|
||||
private const string AppxKey = @"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Appx";
|
||||
private const string ValueName = "AllowDevelopmentWithoutDevLicense";
|
||||
|
||||
public static async Task Main(string[] args)
|
||||
{
|
||||
string ps1File = Path.Combine(AppContext.BaseDirectory, "Install.ps1");
|
||||
|
||||
if (!File.Exists(ps1File))
|
||||
{
|
||||
Console.WriteLine("未检测到 Install.ps1 文件");
|
||||
Console.WriteLine("请勿移动该安装程序,按下任意键退出...");
|
||||
Console.ReadKey();
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
//以管理策略打开开发者模式
|
||||
Registry.SetValue(AppxKey, ValueName, 1, RegistryValueKind.DWord);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
Console.WriteLine("开发者模式未开启,请手动开启,参阅下方链接");
|
||||
Console.WriteLine("https://learn.microsoft.com/zh-CN/windows/apps/get-started/developer-mode-features-and-debugging");
|
||||
}
|
||||
|
||||
await InstallAsync(ps1File).ConfigureAwait(false);
|
||||
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("官方文档与使用教程");
|
||||
Console.WriteLine("https://hut.ao");
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("在开始菜单中启动 Snap.Hutao ,按下任意键退出...");
|
||||
Console.ReadKey();
|
||||
}
|
||||
|
||||
private static async Task InstallAsync(string ps1File)
|
||||
{
|
||||
Console.WriteLine("请注意 PowerShell 中的提示");
|
||||
Process ps = new()
|
||||
{
|
||||
StartInfo = new ProcessStartInfo()
|
||||
{
|
||||
FileName = "powershell.exe",
|
||||
Arguments = $"-ExecutionPolicy Unrestricted \"{ps1File}\"",
|
||||
UseShellExecute = true,
|
||||
}
|
||||
};
|
||||
|
||||
try
|
||||
{
|
||||
ps.Start();
|
||||
await ps.WaitForExitAsync();
|
||||
Console.WriteLine("安装脚本运行完成");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0-windows</TargetFramework>
|
||||
<ImplicitUsings>disable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<PublishTrimmed>true</PublishTrimmed>
|
||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||
<DebugType>embedded</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
79
src/Snap.Hutao/Snap.Hutao.Installer/app.manifest
Normal file
79
src/Snap.Hutao/Snap.Hutao.Installer/app.manifest
Normal file
@@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
|
||||
<security>
|
||||
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<!-- UAC 清单选项
|
||||
如果想要更改 Windows 用户帐户控制级别,请使用
|
||||
以下节点之一替换 requestedExecutionLevel 节点。
|
||||
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
||||
|
||||
指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
|
||||
如果你的应用程序需要此虚拟化来实现向后兼容性,则移除此
|
||||
元素。
|
||||
-->
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
|
||||
Windows 版本的列表。取消评论适当的元素,
|
||||
Windows 将自动选择最兼容的环境。 -->
|
||||
|
||||
<!-- Windows Vista -->
|
||||
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
|
||||
|
||||
<!-- Windows 7 -->
|
||||
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
|
||||
|
||||
<!-- Windows 8 -->
|
||||
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
|
||||
|
||||
<!-- Windows 8.1 -->
|
||||
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
|
||||
|
||||
<!-- Windows 10 -->
|
||||
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
|
||||
|
||||
</application>
|
||||
</compatibility>
|
||||
|
||||
<!-- 指示该应用程序可感知 DPI 且 Windows 在 DPI 较高时将不会对其进行
|
||||
自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI,无需
|
||||
选择加入。选择加入此设置的 Windows 窗体应用程序(面向 .NET Framework 4.6)还应
|
||||
在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。
|
||||
|
||||
将应用程序设为感知长路径。请参阅 https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation -->
|
||||
<!--
|
||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<windowsSettings>
|
||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
|
||||
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
-->
|
||||
|
||||
<!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
|
||||
<!--
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="*"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
</assembly>
|
||||
@@ -14,6 +14,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SettingsUI", "SettingsUI\Se
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Snap.Hutao.SourceGeneration", "Snap.Hutao.SourceGeneration\Snap.Hutao.SourceGeneration.csproj", "{8B96721E-5604-47D2-9B72-06FEBAD0CE00}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Snap.Hutao.Installer", "Snap.Hutao.Installer\Snap.Hutao.Installer.csproj", "{CEC01691-F65E-4874-9AE2-F571369A7631}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@@ -82,6 +84,22 @@ Global
|
||||
{8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Release|x64.Build.0 = Release|x64
|
||||
{8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{8B96721E-5604-47D2-9B72-06FEBAD0CE00}.Release|x86.Build.0 = Release|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|arm64.ActiveCfg = Debug|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|arm64.Build.0 = Debug|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|arm64.ActiveCfg = Release|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|arm64.Build.0 = Release|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|x64.Build.0 = Release|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{CEC01691-F65E-4874-9AE2-F571369A7631}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
<Thickness x:Key="InfoBarContentRootPadding">16,0,0,0</Thickness>
|
||||
<!--Pivot Resource-->
|
||||
<x:Double x:Key="PivotHeaderItemFontSize">16</x:Double>
|
||||
<Thickness x:Key="PivotHeaderItemMargin">16,0,0,0</Thickness>
|
||||
<Thickness x:Key="PivotItemMargin">0</Thickness>
|
||||
<!--CornerRadius-->
|
||||
<CornerRadius x:Key="CompatCornerRadius">6</CornerRadius>
|
||||
<CornerRadius x:Key="CompatCornerRadiusTop">6,6,0,0</CornerRadius>
|
||||
@@ -46,6 +48,22 @@
|
||||
<shmmc:QualityColorConverter x:Key="QualityColorConverter"/>
|
||||
<shmmc:WeaponTypeIconConverter x:Key="WeaponTypeIconConverter"/>
|
||||
<shvc:BoolToVisibilityRevertConverter x:Key="BoolToVisibilityRevertConverter"/>
|
||||
|
||||
<!--Styles-->
|
||||
<Style
|
||||
x:Key="LargeGridViewItemStyle"
|
||||
TargetType="GridViewItem"
|
||||
BasedOn="{StaticResource DefaultGridViewItemStyle}">
|
||||
<Setter Property="Margin" Value="0,0,12,12"/>
|
||||
</Style>
|
||||
<!--ItemsPanelTemplate-->
|
||||
<ItemsPanelTemplate x:Key="ItemsStackPanelTemplate">
|
||||
<ItemsStackPanel/>
|
||||
</ItemsPanelTemplate>
|
||||
|
||||
<ItemsPanelTemplate x:Key="HorizontalStackPanelTemplate">
|
||||
<StackPanel Orientation="Horizontal"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ResourceDictionary>
|
||||
</Application.Resources>
|
||||
</Application>
|
||||
|
||||
@@ -7,7 +7,6 @@ using Snap.Hutao.Core;
|
||||
using Snap.Hutao.Core.Exception;
|
||||
using Snap.Hutao.Core.LifeCycle;
|
||||
using Snap.Hutao.Core.Logging;
|
||||
using Snap.Hutao.Core.Threading;
|
||||
using Snap.Hutao.Extension;
|
||||
using Snap.Hutao.Service.Metadata;
|
||||
using System.Diagnostics;
|
||||
|
||||
@@ -30,6 +30,7 @@ public class ScopedPage : Page
|
||||
|
||||
/// <summary>
|
||||
/// 初始化
|
||||
/// 应当在 InitializeComponent() 前调用
|
||||
/// </summary>
|
||||
/// <typeparam name="TViewModel">视图模型类型</typeparam>
|
||||
public void InitializeWith<TViewModel>()
|
||||
|
||||
@@ -11,6 +11,7 @@ global using Microsoft.Extensions.Logging;
|
||||
// Snap.Hutao
|
||||
global using Snap.Hutao.Core.DependencyInjection;
|
||||
global using Snap.Hutao.Core.DependencyInjection.Annotation;
|
||||
global using Snap.Hutao.Core.Threading;
|
||||
global using Snap.Hutao.Core.Validation;
|
||||
|
||||
// Runtime
|
||||
|
||||
@@ -21,6 +21,7 @@ public class ComplexAvatar
|
||||
{
|
||||
Name = avatar.Name;
|
||||
Icon = AvatarIconConverter.IconNameToUri(avatar.Icon);
|
||||
SideIcon = AvatarSideIconConverter.IconNameToUri(avatar.SideIcon);
|
||||
Quality = avatar.Quality;
|
||||
Rate = $"{rate:P3}";
|
||||
}
|
||||
@@ -35,6 +36,11 @@ public class ComplexAvatar
|
||||
/// </summary>
|
||||
public Uri Icon { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 侧面图标
|
||||
/// </summary>
|
||||
public Uri SideIcon { get; set; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// 星级
|
||||
/// </summary>
|
||||
|
||||
@@ -12,9 +12,19 @@ internal class AvatarSideIconConverter : ValueConverterBase<string, Uri>
|
||||
{
|
||||
private const string BaseUrl = "https://static.snapgenshin.com/AvatarIcon/{0}.png";
|
||||
|
||||
/// <summary>
|
||||
/// 名称转Uri
|
||||
/// </summary>
|
||||
/// <param name="name">名称</param>
|
||||
/// <returns>链接</returns>
|
||||
public static Uri IconNameToUri(string name)
|
||||
{
|
||||
return new Uri(string.Format(BaseUrl, name));
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Uri Convert(string from)
|
||||
{
|
||||
return new Uri(string.Format(BaseUrl, from));
|
||||
return IconNameToUri(from);
|
||||
}
|
||||
}
|
||||
BIN
src/Snap.Hutao/Snap.Hutao/Resource/Icon/UI_ItemIcon_210.png
Normal file
BIN
src/Snap.Hutao/Snap.Hutao/Resource/Icon/UI_ItemIcon_210.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.3 KiB |
@@ -40,7 +40,6 @@ internal class GameService : IGameService
|
||||
/// </summary>
|
||||
/// <param name="scopeFactory">范围工厂</param>
|
||||
/// <param name="memoryCache">内存缓存</param>
|
||||
/// <param name="gameLocators">游戏定位器集合</param>
|
||||
public GameService(IServiceScopeFactory scopeFactory, IMemoryCache memoryCache)
|
||||
{
|
||||
this.scopeFactory = scopeFactory;
|
||||
|
||||
@@ -48,8 +48,10 @@
|
||||
<None Remove="Resource\Icon\UI_Icon_Locked.png" />
|
||||
<None Remove="Resource\Icon\UI_Icon_None.png" />
|
||||
<None Remove="Resource\Icon\UI_ItemIcon_201.png" />
|
||||
<None Remove="Resource\Icon\UI_ItemIcon_210.png" />
|
||||
<None Remove="Resource\Segoe Fluent Icons.ttf" />
|
||||
<None Remove="stylecop.json" />
|
||||
<None Remove="View\Control\BottomTextControl.xaml" />
|
||||
<None Remove="View\Control\DescParamComboBox.xaml" />
|
||||
<None Remove="View\Control\ItemIcon.xaml" />
|
||||
<None Remove="View\Control\SkillPivot.xaml" />
|
||||
@@ -67,6 +69,7 @@
|
||||
<None Remove="View\Page\AnnouncementContentPage.xaml" />
|
||||
<None Remove="View\Page\AnnouncementPage.xaml" />
|
||||
<None Remove="View\Page\AvatarPropertyPage.xaml" />
|
||||
<None Remove="View\Page\DailyNotePage.xaml" />
|
||||
<None Remove="View\Page\GachaLogPage.xaml" />
|
||||
<None Remove="View\Page\HutaoDatabasePage.xaml" />
|
||||
<None Remove="View\Page\LaunchGamePage.xaml" />
|
||||
@@ -104,6 +107,7 @@
|
||||
<Content Include="Resource\Icon\UI_Icon_Locked.png" />
|
||||
<Content Include="Resource\Icon\UI_Icon_None.png" />
|
||||
<Content Include="Resource\Icon\UI_ItemIcon_201.png" />
|
||||
<Content Include="Resource\Icon\UI_ItemIcon_210.png" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -150,6 +154,16 @@
|
||||
<ItemGroup>
|
||||
<None Include="..\.editorconfig" Link=".editorconfig" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Update="View\Page\DailyNotePage.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Update="View\Control\BottomTextControl.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Update="View\Dialog\GameAccountNameDialog.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
<ContentControl
|
||||
x:Class="Snap.Hutao.View.Control.BottomTextControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d">
|
||||
|
||||
<Border
|
||||
BorderThickness="1"
|
||||
CornerRadius="{StaticResource CompatCornerRadius}"
|
||||
BorderBrush="{StaticResource CardStrokeColorDefault}"
|
||||
Background="{StaticResource CardBackgroundFillColorDefault}">
|
||||
<StackPanel>
|
||||
<ContentPresenter
|
||||
Name="ContentHost"/>
|
||||
<TextBlock
|
||||
Name="TextHost"
|
||||
Margin="0,0,0,2"
|
||||
TextWrapping="NoWrap"
|
||||
TextTrimming="CharacterEllipsis"
|
||||
MaxWidth="80"
|
||||
HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</ContentControl>
|
||||
@@ -0,0 +1,55 @@
|
||||
// Copyright (c) DGP Studio. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
using Microsoft.UI.Xaml;
|
||||
using Microsoft.UI.Xaml.Controls;
|
||||
using Microsoft.UI.Xaml.Markup;
|
||||
using Snap.Hutao.Core;
|
||||
|
||||
namespace Snap.Hutao.View.Control;
|
||||
|
||||
/// <summary>
|
||||
/// 底部带有文本的控件
|
||||
/// </summary>
|
||||
[ContentProperty(Name = nameof(TopContent))]
|
||||
public sealed partial class BottomTextControl : ContentControl
|
||||
{
|
||||
private static readonly DependencyProperty TextProperty = Property<BottomTextControl>.Depend(nameof(Text), string.Empty, OnTextChanged);
|
||||
private static readonly DependencyProperty TopContentProperty = Property<BottomTextControl>.Depend<UIElement>(nameof(TopContent), default!, OnContentChanged2);
|
||||
|
||||
/// <summary>
|
||||
/// 构造一个新的底部带有文本的控件
|
||||
/// </summary>
|
||||
public BottomTextControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 顶部内容
|
||||
/// </summary>
|
||||
public UIElement TopContent
|
||||
{
|
||||
get { return (UIElement)GetValue(TopContentProperty); }
|
||||
set { SetValue(TopContentProperty, value); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 文本
|
||||
/// </summary>
|
||||
public string Text
|
||||
{
|
||||
get { return (string)GetValue(TextProperty); }
|
||||
set { SetValue(TextProperty, value); }
|
||||
}
|
||||
|
||||
private static void OnTextChanged(DependencyObject sender, DependencyPropertyChangedEventArgs dp)
|
||||
{
|
||||
((BottomTextControl)sender).TextHost.Text = (string)dp.NewValue;
|
||||
}
|
||||
|
||||
private static void OnContentChanged2(DependencyObject sender, DependencyPropertyChangedEventArgs dp)
|
||||
{
|
||||
((BottomTextControl)sender).ContentHost.Content = dp.NewValue;
|
||||
}
|
||||
}
|
||||
@@ -38,6 +38,11 @@
|
||||
shvh:NavHelper.NavigateTo="shvp:GachaLogPage"
|
||||
Icon="{shcm:BitmapIcon Source=ms-appx:///Resource/Icon/UI_BtnIcon_Gacha.png}"/>
|
||||
|
||||
<NavigationViewItem
|
||||
Content="实时便笺"
|
||||
shvh:NavHelper.NavigateTo="shvp:DailyNotePage"
|
||||
Icon="{shcm:BitmapIcon Source=ms-appx:///Resource/Icon/UI_ItemIcon_210.png}"/>
|
||||
|
||||
<NavigationViewItem
|
||||
Content="成就管理"
|
||||
shvh:NavHelper.NavigateTo="shvp:AchievementPage"
|
||||
|
||||
@@ -18,22 +18,22 @@
|
||||
<mxi:Interaction.Behaviors>
|
||||
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
|
||||
</mxi:Interaction.Behaviors>
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid>
|
||||
<Grid.Background>
|
||||
<SolidColorBrush Color="{ThemeResource CardBackgroundFillColorSecondary}"/>
|
||||
</Grid.Background>
|
||||
<Grid Background="{StaticResource CardBackgroundFillColorDefaultBrush}">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="252"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<CommandBar
|
||||
Grid.Column="1"
|
||||
DefaultLabelPosition="Right">
|
||||
|
||||
<CommandBar.Content>
|
||||
<AutoSuggestBox
|
||||
Text="{Binding SearchText,Mode=TwoWay}"
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
<AppBarElementContainer>
|
||||
<ComboBox
|
||||
MinWidth="120"
|
||||
MinWidth="140"
|
||||
Height="36"
|
||||
Margin="2,6,3,6"
|
||||
DisplayMemberPath="Name"
|
||||
@@ -138,16 +138,8 @@
|
||||
<ScrollViewer Padding="0,0,16,0">
|
||||
<ItemsControl
|
||||
Margin="16,0,0,16"
|
||||
ItemsSource="{Binding Achievements}">
|
||||
<!--ContentThemeTransition here can make items blinking-->
|
||||
<!--<ItemsControl.Transitions>
|
||||
<ContentThemeTransition/>
|
||||
</ItemsControl.Transitions>-->
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<ItemsStackPanel/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
ItemsSource="{Binding Achievements}"
|
||||
ItemsPanel="{StaticResource ItemsStackPanelTemplate}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Grid
|
||||
@@ -194,8 +186,7 @@
|
||||
VerticalAlignment="Center"
|
||||
Grid.Column="0"
|
||||
Text="{Binding Time}"
|
||||
Visibility="{Binding IsChecked,Converter={StaticResource BoolToVisibilityConverter}}"
|
||||
/>
|
||||
Visibility="{Binding IsChecked,Converter={StaticResource BoolToVisibilityConverter}}"/>
|
||||
<Image
|
||||
Grid.Column="1"
|
||||
Height="32"
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
xmlns:shca="using:Snap.Hutao.Control.Animation"
|
||||
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
|
||||
xmlns:shci="using:Snap.Hutao.Control.Image"
|
||||
xmlns:shv="using:Snap.Hutao.ViewModel"
|
||||
d:DataContext="{d:DesignInstance shv:AnnouncementViewModel}"
|
||||
mc:Ignorable="d"
|
||||
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
<mxi:Interaction.Behaviors>
|
||||
@@ -28,7 +30,7 @@
|
||||
HorizontalAlignment="Stretch"
|
||||
ItemsSource="{Binding Announcement.List}"
|
||||
Padding="0"
|
||||
Margin="12,12,0,-12">
|
||||
Margin="16,16,0,-6">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
@@ -41,13 +43,9 @@
|
||||
SelectionMode="None"
|
||||
DesiredWidth="300"
|
||||
HorizontalAlignment="Stretch"
|
||||
ItemsSource="{Binding List}"
|
||||
ItemContainerStyle="{StaticResource LargeGridViewItemStyle}"
|
||||
ItemsSource="{Binding List}"
|
||||
Margin="0,0,2,0">
|
||||
<cwucont:AdaptiveGridView.ItemContainerStyle>
|
||||
<Style TargetType="GridViewItem" BasedOn="{StaticResource DefaultGridViewItemStyle}">
|
||||
<Setter Property="Margin" Value="0,0,12,12"/>
|
||||
</Style>
|
||||
</cwucont:AdaptiveGridView.ItemContainerStyle>
|
||||
<cwucont:AdaptiveGridView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border
|
||||
|
||||
@@ -15,9 +15,7 @@
|
||||
xmlns:shcm="using:Snap.Hutao.Control.Markup"
|
||||
xmlns:shcp="using:Snap.Hutao.Control.Panel"
|
||||
xmlns:shct="using:Snap.Hutao.Control.Text"
|
||||
xmlns:shmmc="using:Snap.Hutao.Model.Metadata.Converter"
|
||||
xmlns:shvcont="using:Snap.Hutao.View.Control"
|
||||
xmlns:shvconv="using:Snap.Hutao.View.Converter"
|
||||
xmlns:shv="using:Snap.Hutao.ViewModel"
|
||||
mc:Ignorable="d"
|
||||
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
|
||||
@@ -45,7 +43,7 @@
|
||||
</Grid.RowDefinitions>
|
||||
<CommandBar
|
||||
DefaultLabelPosition="Right"
|
||||
Background="{StaticResource CardBackgroundFillColorSecondary}">
|
||||
Background="{StaticResource CardBackgroundFillColorSecondaryBrush}">
|
||||
<CommandBar.Content>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
@@ -54,7 +52,9 @@
|
||||
<ColumnDefinition Width="72"/>
|
||||
<ColumnDefinition Width="72"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<shcp:PanelSelector Margin="6,6,0,0" x:Name="ItemsPanelSelector"/>
|
||||
<shcp:PanelSelector
|
||||
Margin="6,6,0,0"
|
||||
x:Name="ItemsPanelSelector"/>
|
||||
<StackPanel
|
||||
Grid.Column="1"
|
||||
Margin="12,6,0,0">
|
||||
@@ -90,12 +90,12 @@
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</CommandBar.Content>
|
||||
|
||||
<AppBarSeparator/>
|
||||
<AppBarButton
|
||||
Label="刷新"
|
||||
Icon="{shcm:FontIcon Glyph=}"
|
||||
Command="{Binding RefreshByUserGameRoleCommand}"/>
|
||||
|
||||
<AppBarButton
|
||||
Label="按UID查询"
|
||||
Icon="{shcm:FontIcon Glyph=}"
|
||||
@@ -236,12 +236,8 @@
|
||||
CornerRadius="{StaticResource CompatCornerRadius}"
|
||||
Background="{StaticResource CardBackgroundFillColorSecondary}">
|
||||
<ItemsControl
|
||||
ItemsSource="{Binding SelectedAvatar.Skills}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Horizontal"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
ItemsSource="{Binding SelectedAvatar.Skills}"
|
||||
ItemsPanel="{StaticResource HorizontalStackPanelTemplate}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Button
|
||||
@@ -450,12 +446,8 @@
|
||||
SelectionMode="None"
|
||||
HorizontalAlignment="Left"
|
||||
ItemsSource="{Binding SelectedAvatar.Reliquaries}"
|
||||
Margin="0,12,0,-12">
|
||||
<cwucont:AdaptiveGridView.ItemContainerStyle>
|
||||
<Style TargetType="GridViewItem" BasedOn="{StaticResource DefaultGridViewItemStyle}">
|
||||
<Setter Property="Margin" Value="0,0,12,12"/>
|
||||
</Style>
|
||||
</cwucont:AdaptiveGridView.ItemContainerStyle>
|
||||
Margin="0,12,0,-12"
|
||||
ItemContainerStyle="{StaticResource LargeGridViewItemStyle}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border
|
||||
|
||||
53
src/Snap.Hutao/Snap.Hutao/View/Page/DailyNotePage.xaml
Normal file
53
src/Snap.Hutao/Snap.Hutao/View/Page/DailyNotePage.xaml
Normal file
@@ -0,0 +1,53 @@
|
||||
<shc:ScopedPage
|
||||
x:Class="Snap.Hutao.View.Page.DailyNotePage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:shc="using:Snap.Hutao.Control"
|
||||
xmlns:shcm="using:Snap.Hutao.Control.Markup"
|
||||
xmlns:sc="using:SettingsUI.Controls"
|
||||
xmlns:shv="using:Snap.Hutao.ViewModel"
|
||||
mc:Ignorable="d"
|
||||
d:DataContext="{d:DesignInstance shv:DailyNoteViewModel}"
|
||||
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<CommandBar
|
||||
Background="{StaticResource CardBackgroundFillColorDefaultBrush}"
|
||||
DefaultLabelPosition="Right">
|
||||
<AppBarButton Label="添加角色" Icon="{shcm:FontIcon Glyph=}"/>
|
||||
<AppBarButton Label="立即刷新" Icon="{shcm:FontIcon Glyph=}"/>
|
||||
<AppBarButton Label="通知设置" Icon="{shcm:FontIcon Glyph=}">
|
||||
<AppBarButton.Flyout>
|
||||
<Flyout>
|
||||
<StackPanel>
|
||||
<RadioButtons ItemsSource="{Binding RefreshTimes}">
|
||||
<RadioButtons.Header>
|
||||
<TextBlock Text="刷新间隔时间" Style="{StaticResource BaseTextBlockStyle}"/>
|
||||
</RadioButtons.Header>
|
||||
<RadioButtons.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Margin="0,0,0,0" Text="{Binding Name}"/>
|
||||
</DataTemplate>
|
||||
</RadioButtons.ItemTemplate>
|
||||
</RadioButtons>
|
||||
<sc:SettingsGroup Header="通知" Margin="0,-16,0,0">
|
||||
<sc:Setting
|
||||
Icon=""
|
||||
Header="提醒通知"
|
||||
Description="防止通知自动收入操作中心">
|
||||
<ToggleSwitch Margin="24,0,0,0" Style="{StaticResource ToggleSwitchSettingStyle}"/>
|
||||
</sc:Setting>
|
||||
</sc:SettingsGroup>
|
||||
</StackPanel>
|
||||
</Flyout>
|
||||
</AppBarButton.Flyout>
|
||||
</AppBarButton>
|
||||
</CommandBar>
|
||||
</Grid>
|
||||
</shc:ScopedPage>
|
||||
22
src/Snap.Hutao/Snap.Hutao/View/Page/DailyNotePage.xaml.cs
Normal file
22
src/Snap.Hutao/Snap.Hutao/View/Page/DailyNotePage.xaml.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
// Copyright (c) DGP Studio. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
using Snap.Hutao.Control;
|
||||
using Snap.Hutao.ViewModel;
|
||||
|
||||
namespace Snap.Hutao.View.Page;
|
||||
|
||||
/// <summary>
|
||||
/// 实时便笺页面
|
||||
/// </summary>
|
||||
public sealed partial class DailyNotePage : ScopedPage
|
||||
{
|
||||
/// <summary>
|
||||
/// 构造一个新的实时便笺页面
|
||||
/// </summary>
|
||||
public DailyNotePage()
|
||||
{
|
||||
InitializeWith<DailyNoteViewModel>();
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
@@ -19,11 +19,6 @@
|
||||
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
|
||||
</mxi:Interaction.Behaviors>
|
||||
|
||||
<shc:ScopedPage.Resources>
|
||||
<Thickness x:Key="PivotHeaderItemMargin">8,0,8,0</Thickness>
|
||||
<Thickness x:Key="PivotItemMargin">0</Thickness>
|
||||
</shc:ScopedPage.Resources>
|
||||
|
||||
<Grid Visibility="{Binding IsInitialized,Converter={StaticResource BoolToVisibilityConverter}}">
|
||||
<Rectangle
|
||||
Height="48"
|
||||
@@ -34,7 +29,7 @@
|
||||
<ComboBox
|
||||
MinWidth="120"
|
||||
Height="36"
|
||||
Margin="16,6,12,6"
|
||||
Margin="16,6,0,6"
|
||||
DisplayMemberPath="Uid"
|
||||
SelectedItem="{Binding SelectedArchive,Mode=TwoWay}"
|
||||
ItemsSource="{Binding Archives}"/>
|
||||
@@ -44,14 +39,14 @@
|
||||
<AppBarButton Label="刷新" Icon="{shcm:FontIcon Glyph=}">
|
||||
<AppBarButton.Flyout>
|
||||
<MenuFlyout Placement="Bottom">
|
||||
<MenuFlyoutItem
|
||||
Text="从缓存刷新"
|
||||
Icon="{shcm:FontIcon Glyph=}"
|
||||
Command="{Binding RefreshByWebCacheCommand}"/>
|
||||
<MenuFlyoutItem
|
||||
Text="Stoken刷新"
|
||||
Icon="{shcm:FontIcon Glyph=}"
|
||||
Command="{Binding RefreshByStokenCommand}"/>
|
||||
<MenuFlyoutItem
|
||||
Text="从缓存刷新"
|
||||
Icon="{shcm:FontIcon Glyph=}"
|
||||
Command="{Binding RefreshByWebCacheCommand}"/>
|
||||
<MenuFlyoutItem
|
||||
Text="手动输入Url"
|
||||
Icon="{shcm:FontIcon Glyph=}"
|
||||
|
||||
@@ -15,16 +15,11 @@
|
||||
mc:Ignorable="d"
|
||||
d:DataContext="{d:DesignInstance shv:HutaoDatabaseViewModel}"
|
||||
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
|
||||
|
||||
<mxi:Interaction.Behaviors>
|
||||
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
|
||||
</mxi:Interaction.Behaviors>
|
||||
|
||||
<shc:ScopedPage.Resources>
|
||||
<Thickness x:Key="PivotHeaderItemMargin">8,0,8,0</Thickness>
|
||||
<Thickness x:Key="PivotItemMargin">0</Thickness>
|
||||
</shc:ScopedPage.Resources>
|
||||
|
||||
<Grid>
|
||||
<Pivot>
|
||||
<Pivot.RightHeader>
|
||||
@@ -55,25 +50,15 @@
|
||||
<GridView
|
||||
SelectionMode="None"
|
||||
ItemsSource="{Binding Avatars}"
|
||||
Margin="12,12,0,-12">
|
||||
<GridView.ItemContainerStyle>
|
||||
<Style TargetType="GridViewItem" BasedOn="{StaticResource DefaultGridViewItemStyle}">
|
||||
<Setter Property="Margin" Value="0,0,12,12"/>
|
||||
</Style>
|
||||
</GridView.ItemContainerStyle>
|
||||
Margin="16,16,6,-6"
|
||||
ItemContainerStyle="{StaticResource LargeGridViewItemStyle}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border Background="{StaticResource CardBackgroundFillColorDefault}">
|
||||
<StackPanel>
|
||||
<shvc:ItemIcon
|
||||
Icon="{Binding Icon}"
|
||||
Quality="{Binding Quality}"/>
|
||||
<TextBlock
|
||||
Margin="0,0,0,2"
|
||||
HorizontalAlignment="Center"
|
||||
Text="{Binding Rate}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<shvc:BottomTextControl Text="{Binding Rate}">
|
||||
<shvc:ItemIcon
|
||||
Icon="{Binding Icon}"
|
||||
Quality="{Binding Quality}"/>
|
||||
</shvc:BottomTextControl>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</GridView>
|
||||
@@ -95,25 +80,15 @@
|
||||
<GridView
|
||||
SelectionMode="None"
|
||||
ItemsSource="{Binding Avatars}"
|
||||
Margin="12,12,0,-12">
|
||||
<GridView.ItemContainerStyle>
|
||||
<Style TargetType="GridViewItem" BasedOn="{StaticResource DefaultGridViewItemStyle}">
|
||||
<Setter Property="Margin" Value="0,0,12,12"/>
|
||||
</Style>
|
||||
</GridView.ItemContainerStyle>
|
||||
Margin="16,16,6,-6"
|
||||
ItemContainerStyle="{StaticResource LargeGridViewItemStyle}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border Background="{StaticResource CardBackgroundFillColorDefault}">
|
||||
<StackPanel>
|
||||
<shvc:ItemIcon
|
||||
Icon="{Binding Icon}"
|
||||
Quality="{Binding Quality}"/>
|
||||
<TextBlock
|
||||
Margin="0,0,0,2"
|
||||
HorizontalAlignment="Center"
|
||||
Text="{Binding Rate}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<shvc:BottomTextControl Text="{Binding Rate}">
|
||||
<shvc:ItemIcon
|
||||
Icon="{Binding Icon}"
|
||||
Quality="{Binding Quality}"/>
|
||||
</shvc:BottomTextControl>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</GridView>
|
||||
@@ -128,7 +103,7 @@
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid Margin="12,0,12,0">
|
||||
<Grid Margin="16,0,16,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="48"/>
|
||||
<ColumnDefinition />
|
||||
@@ -152,6 +127,7 @@
|
||||
</Grid>
|
||||
<ScrollViewer Grid.Row="1">
|
||||
<ItemsControl
|
||||
Margin="0,0,0,8"
|
||||
HorizontalContentAlignment="Stretch"
|
||||
ItemsSource="{Binding AvatarConstellationInfos}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
@@ -164,7 +140,7 @@
|
||||
<Border
|
||||
Background="{StaticResource CardBackgroundFillColorDefault}"
|
||||
CornerRadius="{StaticResource CompatCornerRadius}"
|
||||
Margin="12,0,12,12">
|
||||
Margin="16,0,16,8">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="auto"/>
|
||||
|
||||
@@ -34,13 +34,13 @@
|
||||
<RowDefinition/>
|
||||
<RowDefinition Height="auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<ScrollViewer Grid.Column="0" CanContentRenderOutsideBounds="True">
|
||||
<ScrollViewer Grid.RowSpan="2">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition MaxWidth="800"/>
|
||||
<ColumnDefinition Width="auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Margin="32,0,24,24">
|
||||
<StackPanel Margin="16,-16,16,16">
|
||||
<sc:SettingsGroup Header="常规" Margin="0,0,0,0">
|
||||
<sc:Setting
|
||||
Icon=""
|
||||
@@ -246,15 +246,21 @@
|
||||
</ScrollViewer>
|
||||
<Grid
|
||||
Grid.Row="1"
|
||||
VerticalAlignment="Bottom"
|
||||
Background="{StaticResource SystemControlAcrylicElementMediumHighBrush}">
|
||||
VerticalAlignment="Bottom">
|
||||
<Button
|
||||
Style="{StaticResource AccentButtonStyle}"
|
||||
Command="{Binding LaunchCommand}"
|
||||
HorizontalAlignment="Right"
|
||||
Grid.Column="3"
|
||||
Margin="24"
|
||||
Width="138"
|
||||
Content="启动游戏"/>
|
||||
MinWidth="80"
|
||||
Width="100"
|
||||
Height="80">
|
||||
<StackPanel>
|
||||
<FontIcon Glyph="" FontSize="36"/>
|
||||
<TextBlock Margin="0,4,0,0" Text="启动游戏"/>
|
||||
</StackPanel>
|
||||
</Button>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</shc:ScopedPage>
|
||||
@@ -23,17 +23,22 @@
|
||||
<ColumnDefinition MaxWidth="1000"/>
|
||||
<ColumnDefinition Width="auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Margin="32,0,24,24">
|
||||
<StackPanel Margin="16,-16,24,16">
|
||||
<sc:SettingsGroup Header="关于 胡桃">
|
||||
<Grid Margin="0,4,0,16">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="auto"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Image
|
||||
Grid.Column="0"
|
||||
<Border
|
||||
Width="80"
|
||||
Source="ms-appx:///Assets/Square150x150Logo.scale-200.png"/>
|
||||
BorderThickness="1"
|
||||
CornerRadius="{StaticResource CompatCornerRadius}"
|
||||
BorderBrush="{StaticResource CardStrokeColorDefault}"
|
||||
Background="{StaticResource CardBackgroundFillColorDefault}">
|
||||
<Image Source="ms-appx:///Assets/Square150x150Logo.scale-200.png"/>
|
||||
</Border>
|
||||
|
||||
<Grid
|
||||
Margin="16,0,0,0"
|
||||
Grid.Column="1">
|
||||
|
||||
@@ -60,10 +60,6 @@
|
||||
</shct:DescriptionTextBlock.Resources>
|
||||
</shct:DescriptionTextBlock>
|
||||
</DataTemplate>
|
||||
|
||||
<ItemsPanelTemplate x:Key="HorizontalStackPanelTemplate">
|
||||
<StackPanel Orientation="Horizontal"/>
|
||||
</ItemsPanelTemplate>
|
||||
</Page.Resources>
|
||||
|
||||
<SplitView
|
||||
@@ -372,19 +368,13 @@
|
||||
ItemsSource="{Binding Selected.Collocation.Avatars}">
|
||||
<GridView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border
|
||||
<shvc:BottomTextControl
|
||||
ToolTipService.ToolTip="{Binding Name}"
|
||||
Background="{StaticResource CardBackgroundFillColorDefault}">
|
||||
<StackPanel>
|
||||
<shvc:ItemIcon
|
||||
Icon="{Binding Icon}"
|
||||
Quality="{Binding Quality}"/>
|
||||
<TextBlock
|
||||
Margin="0,0,0,2"
|
||||
HorizontalAlignment="Center"
|
||||
Text="{Binding Rate}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
Text="{Binding Rate}">
|
||||
<shvc:ItemIcon
|
||||
Icon="{Binding Icon}"
|
||||
Quality="{Binding Quality}"/>
|
||||
</shvc:BottomTextControl>
|
||||
</DataTemplate>
|
||||
</GridView.ItemTemplate>
|
||||
</GridView>
|
||||
@@ -397,23 +387,16 @@
|
||||
ItemsSource="{Binding Selected.Collocation.Weapons}">
|
||||
<GridView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border
|
||||
<shvc:BottomTextControl
|
||||
ToolTipService.ToolTip="{Binding Name}"
|
||||
Background="{StaticResource CardBackgroundFillColorDefault}">
|
||||
<StackPanel>
|
||||
<shvc:ItemIcon
|
||||
Icon="{Binding Icon}"
|
||||
Quality="{Binding Quality}"/>
|
||||
<TextBlock
|
||||
Margin="0,0,0,2"
|
||||
HorizontalAlignment="Center"
|
||||
Text="{Binding Rate}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
Text="{Binding Rate}">
|
||||
<shvc:ItemIcon
|
||||
Icon="{Binding Icon}"
|
||||
Quality="{Binding Quality}"/>
|
||||
</shvc:BottomTextControl>
|
||||
</DataTemplate>
|
||||
</GridView.ItemTemplate>
|
||||
</GridView>
|
||||
|
||||
<TextBlock Text="搭配圣遗物" Style="{StaticResource BaseTextBlockStyle}" Margin="16,0,0,0"/>
|
||||
<GridView
|
||||
Margin="16,16,0,0"
|
||||
@@ -423,30 +406,49 @@
|
||||
ItemsSource="{Binding Selected.Collocation.ReliquarySets}">
|
||||
<GridView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border
|
||||
<shvc:BottomTextControl
|
||||
ToolTipService.ToolTip="{Binding Name}"
|
||||
Background="{StaticResource CardBackgroundFillColorDefault}">
|
||||
<StackPanel>
|
||||
<Grid>
|
||||
<shvc:ItemIcon Quality="QUALITY_ORANGE"/>
|
||||
<ItemsControl
|
||||
Margin="0,0,16,0"
|
||||
HorizontalAlignment="Center"
|
||||
ItemsSource="{Binding Icons}"
|
||||
ItemsPanel="{StaticResource HorizontalStackPanelTemplate}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<shci:CachedImage Width="48" Margin="0,0,-16,0" Source="{Binding}"/>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</Grid>
|
||||
<TextBlock
|
||||
Margin="0,0,0,2"
|
||||
HorizontalAlignment="Center"
|
||||
Text="{Binding Rate}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
Text="{Binding Rate}">
|
||||
<cwuc:SwitchPresenter Value="{Binding Icons.Count,Mode=OneWay}">
|
||||
<cwuc:Case IsDefault="True">
|
||||
<cwuc:Case.Value>
|
||||
<x:Int32>0</x:Int32>
|
||||
</cwuc:Case.Value>
|
||||
<Grid>
|
||||
<shvc:ItemIcon Quality="QUALITY_ORANGE"/>
|
||||
</Grid>
|
||||
</cwuc:Case>
|
||||
<cwuc:Case>
|
||||
<cwuc:Case.Value>
|
||||
<x:Int32>1</x:Int32>
|
||||
</cwuc:Case.Value>
|
||||
<Grid>
|
||||
<shvc:ItemIcon Quality="QUALITY_ORANGE"/>
|
||||
<shci:CachedImage Width="80" Margin="0,0,0,0" Source="{Binding Icons[0]}"/>
|
||||
</Grid>
|
||||
</cwuc:Case>
|
||||
<cwuc:Case>
|
||||
<cwuc:Case.Value>
|
||||
<x:Int32>2</x:Int32>
|
||||
</cwuc:Case.Value>
|
||||
<Grid>
|
||||
<shvc:ItemIcon Quality="QUALITY_ORANGE"/>
|
||||
<shci:CachedImage
|
||||
Width="54"
|
||||
Margin="0,4,0,0"
|
||||
Source="{Binding Icons[0]}"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top"/>
|
||||
<shci:CachedImage
|
||||
Width="54"
|
||||
Margin="0,0,0,4"
|
||||
Source="{Binding Icons[1]}"
|
||||
HorizontalAlignment="Right"
|
||||
VerticalAlignment="Bottom"/>
|
||||
</Grid>
|
||||
</cwuc:Case>
|
||||
</cwuc:SwitchPresenter>
|
||||
</shvc:BottomTextControl>
|
||||
</DataTemplate>
|
||||
</GridView.ItemTemplate>
|
||||
</GridView>
|
||||
@@ -510,59 +512,29 @@
|
||||
Text="特殊料理"
|
||||
Grid.Column="0"
|
||||
Style="{StaticResource BaseTextBlockStyle}"/>
|
||||
<Border
|
||||
<shvc:BottomTextControl
|
||||
Grid.Row="1"
|
||||
Grid.Column="0"
|
||||
Margin="16,16,0,16"
|
||||
CornerRadius="{StaticResource CompatCornerRadius}"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top"
|
||||
Background="{StaticResource CardBackgroundFillColorDefault}"
|
||||
BorderThickness="1"
|
||||
BorderBrush="{StaticResource CardStrokeColorDefault}">
|
||||
<StackPanel>
|
||||
<shvc:ItemIcon
|
||||
Text="{Binding Selected.FetterInfo.CookBonus.Name}">
|
||||
<shvc:ItemIcon
|
||||
Icon="{Binding Selected.FetterInfo.CookBonus.Icon,Converter={StaticResource ItemIconConverter}}"
|
||||
Quality="{Binding Selected.FetterInfo.CookBonus.RankLevel}"/>
|
||||
<TextBlock
|
||||
TextTrimming="CharacterEllipsis"
|
||||
TextWrapping="NoWrap"
|
||||
MaxWidth="80"
|
||||
Margin="0,0,0,2"
|
||||
HorizontalAlignment="Center"
|
||||
Style="{StaticResource CaptionTextBlockStyle}"
|
||||
Text="{Binding Selected.FetterInfo.CookBonus.Name}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</shvc:BottomTextControl>
|
||||
<TextBlock
|
||||
Margin="16,16,0,0"
|
||||
Text="原料理"
|
||||
Grid.Column="1"
|
||||
Style="{StaticResource BaseTextBlockStyle}"/>
|
||||
<Border
|
||||
<shvc:BottomTextControl
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Margin="16,16,0,16"
|
||||
CornerRadius="{StaticResource CompatCornerRadius}"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top"
|
||||
Background="{StaticResource CardBackgroundFillColorDefault}"
|
||||
BorderThickness="1"
|
||||
BorderBrush="{StaticResource CardStrokeColorDefault}">
|
||||
<StackPanel>
|
||||
<shvc:ItemIcon
|
||||
Text="{Binding Selected.FetterInfo.CookBonus.OriginName}">
|
||||
<shvc:ItemIcon
|
||||
Icon="{Binding Selected.FetterInfo.CookBonus.OriginIcon,Converter={StaticResource ItemIconConverter}}"
|
||||
Quality="{Binding Selected.FetterInfo.CookBonus.RankLevel}"/>
|
||||
<TextBlock
|
||||
TextWrapping="NoWrap"
|
||||
TextTrimming="CharacterEllipsis"
|
||||
MaxWidth="80"
|
||||
Margin="0,0,0,2"
|
||||
HorizontalAlignment="Center"
|
||||
Style="{StaticResource CaptionTextBlockStyle}"
|
||||
Text="{Binding Selected.FetterInfo.CookBonus.OriginName}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</shvc:BottomTextControl>
|
||||
<Rectangle
|
||||
Grid.Column="2"
|
||||
Grid.RowSpan="2"
|
||||
@@ -581,30 +553,14 @@
|
||||
ItemsPanel="{StaticResource HorizontalStackPanelTemplate}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border
|
||||
<shvc:BottomTextControl
|
||||
ToolTipService.ToolTip="{Binding Name}"
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Margin="16,16,0,16"
|
||||
CornerRadius="{StaticResource CompatCornerRadius}"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Top"
|
||||
Background="{StaticResource CardBackgroundFillColorDefault}"
|
||||
BorderThickness="1"
|
||||
BorderBrush="{StaticResource CardStrokeColorDefault}">
|
||||
<StackPanel>
|
||||
<shvc:ItemIcon
|
||||
Icon="{Binding Icon,Converter={StaticResource ItemIconConverter}}"
|
||||
Quality="{Binding RankLevel}"/>
|
||||
<TextBlock
|
||||
TextTrimming="CharacterEllipsis"
|
||||
MaxWidth="80"
|
||||
Margin="0,0,0,2"
|
||||
HorizontalAlignment="Center"
|
||||
Style="{StaticResource CaptionTextBlockStyle}"
|
||||
Text="{Binding Count}"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
Text="{Binding Count}">
|
||||
<shvc:ItemIcon
|
||||
Icon="{Binding Icon,Converter={StaticResource ItemIconConverter}}"
|
||||
Quality="{Binding RankLevel}"/>
|
||||
</shvc:BottomTextControl>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
|
||||
32
src/Snap.Hutao/Snap.Hutao/ViewModel/DailyNoteViewModel.cs
Normal file
32
src/Snap.Hutao/Snap.Hutao/ViewModel/DailyNoteViewModel.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
// Copyright (c) DGP Studio. All rights reserved.
|
||||
// Licensed under the MIT license.
|
||||
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using Snap.Hutao.Control;
|
||||
using Snap.Hutao.Model;
|
||||
|
||||
namespace Snap.Hutao.ViewModel;
|
||||
|
||||
/// <summary>
|
||||
/// 实时便笺视图模型
|
||||
/// </summary>
|
||||
[Injection(InjectAs.Scoped)]
|
||||
internal class DailyNoteViewModel : ObservableObject, ISupportCancellation
|
||||
{
|
||||
private readonly List<NamedValue<int>> refreshTimes = new()
|
||||
{
|
||||
new("4 分钟 | 0.5 树脂", 240),
|
||||
new("8 分钟 | 1 树脂", 480),
|
||||
new("30 分钟 | 3.75 树脂", 1800),
|
||||
new("40 分钟 | 5 树脂", 2400),
|
||||
new("60 分钟 | 7.5 树脂", 3600),
|
||||
};
|
||||
|
||||
/// <inheritdoc/>
|
||||
public CancellationToken CancellationToken { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 刷新时间
|
||||
/// </summary>
|
||||
public List<NamedValue<int>> RefreshTimes { get => refreshTimes; }
|
||||
}
|
||||
@@ -68,6 +68,11 @@ public enum KnownReturnCode : int
|
||||
/// </summary>
|
||||
NotDefined = 7,
|
||||
|
||||
/// <summary>
|
||||
/// 账号有风险
|
||||
/// </summary>
|
||||
CODE1034 = 1034,
|
||||
|
||||
/// <summary>
|
||||
/// 数据未公开
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user