This commit is contained in:
Lightczx
2024-06-20 15:27:49 +08:00
parent 70f4dcb2c9
commit 5bf1cf0530
49 changed files with 191 additions and 353 deletions

View File

@@ -1,46 +0,0 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using CommunityToolkit.Labs.WinUI.MarqueeTextRns;
using CommunityToolkit.WinUI.Behaviors;
using Microsoft.UI.Xaml.Input;
namespace Snap.Hutao.Control.Behavior;
internal sealed class MarqueeTextBehavior : BehaviorBase<MarqueeText>
{
private readonly PointerEventHandler pointerEnteredEventHandler;
private readonly PointerEventHandler pointerExitedEventHandler;
public MarqueeTextBehavior()
{
pointerEnteredEventHandler = OnPointerEntered;
pointerExitedEventHandler = OnPointerExited;
}
protected override bool Initialize()
{
AssociatedObject.PointerEntered += pointerEnteredEventHandler;
AssociatedObject.PointerExited += pointerExitedEventHandler;
return true;
}
protected override bool Uninitialize()
{
AssociatedObject.PointerEntered -= pointerEnteredEventHandler;
AssociatedObject.PointerExited -= pointerExitedEventHandler;
return true;
}
private void OnPointerEntered(object sender, PointerRoutedEventArgs e)
{
AssociatedObject.StartMarquee();
}
private void OnPointerExited(object sender, PointerRoutedEventArgs e)
{
AssociatedObject.StopMarquee();
}
}

View File

@@ -1,19 +0,0 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Windows.UI;
namespace Snap.Hutao.Control.Brush;
internal sealed class ColorSegment : IColorSegment
{
public ColorSegment(Color color, double value)
{
Color = color;
Value = value;
}
public Color Color { get; set; }
public double Value { get; set; }
}

View File

@@ -1,8 +0,0 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
namespace Snap.Hutao.Control.Brush;
internal sealed class ColorSegmentCollection : List<IColorSegment>
{
}

View File

@@ -1,13 +0,0 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Windows.UI;
namespace Snap.Hutao.Control.Brush;
internal interface IColorSegment
{
Color Color { get; }
double Value { get; set; }
}

View File

@@ -1,56 +0,0 @@
// 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.Media;
using Microsoft.UI.Xaml.Shapes;
using System.Runtime.InteropServices;
namespace Snap.Hutao.Control.Brush;
[DependencyProperty("Source", typeof(ColorSegmentCollection), default!, nameof(OnSourceChanged))]
internal sealed partial class SegmentedBar : ContentControl
{
private readonly LinearGradientBrush brush = new() { StartPoint = new(0, 0), EndPoint = new(1, 0), };
public SegmentedBar()
{
HorizontalContentAlignment = HorizontalAlignment.Stretch;
VerticalContentAlignment = VerticalAlignment.Stretch;
Content = new Rectangle()
{
Fill = brush,
HorizontalAlignment = HorizontalAlignment.Stretch,
VerticalAlignment = VerticalAlignment.Stretch,
};
}
private static void OnSourceChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
{
UpdateLinearGradientBrush((SegmentedBar)obj);
}
private static void UpdateLinearGradientBrush(SegmentedBar segmentedBar)
{
GradientStopCollection collection = segmentedBar.brush.GradientStops;
collection.Clear();
ColorSegmentCollection segmentCollection = segmentedBar.Source;
double total = segmentCollection.Sum(seg => seg.Value);
if (total is 0D)
{
return;
}
double offset = 0;
foreach (ref readonly IColorSegment segment in CollectionsMarshal.AsSpan(segmentCollection))
{
collection.Add(new() { Color = segment.Color, Offset = offset, });
offset += segment.Value / total;
collection.Add(new() { Color = segment.Color, Offset = offset, });
}
}
}

View File

@@ -6,10 +6,10 @@ using Microsoft.UI.Composition;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Hosting;
using Microsoft.UI.Xaml.Media;
using Snap.Hutao.Control.Animation;
using Snap.Hutao.Control.Extension;
using Snap.Hutao.Core.Caching;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.UI.Xaml.Media.Animation;
using System.IO;
using System.Net.Http;
using System.Runtime.InteropServices;
@@ -193,7 +193,7 @@ internal abstract partial class CompositionImage : Microsoft.UI.Xaml.Controls.Co
{
await AnimationBuilder
.Create()
.Opacity(from: 0D, to: 1D, duration: ControlAnimationConstants.ImageScaleFadeIn)
.Opacity(from: 0D, to: 1D, duration: Constants.ImageScaleFadeIn)
.StartAsync(this, token)
.ConfigureAwait(true);
}
@@ -214,7 +214,7 @@ internal abstract partial class CompositionImage : Microsoft.UI.Xaml.Controls.Co
{
await AnimationBuilder
.Create()
.Opacity(from: 1D, to: 0D, duration: ControlAnimationConstants.ImageScaleFadeOut)
.Opacity(from: 1D, to: 0D, duration: Constants.ImageScaleFadeOut)
.StartAsync(this, token)
.ConfigureAwait(true);
}

View File

@@ -5,14 +5,14 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shvg="using:Snap.Hutao.ViewModel.Game"
mc:Ignorable="d">
<Grid Name="RootGrid" d:DataContext="{d:DesignInstance shvg:LaunchGameViewModel}">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Grid.RowDefinitions>

View File

@@ -5,7 +5,7 @@ using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.Xaml.Interactivity;
namespace Snap.Hutao.Control.Behavior;
namespace Snap.Hutao.UI.Xaml.Behavior.Action;
/// <summary>
/// 打开附着的浮出控件操作

View File

@@ -5,7 +5,7 @@ using CommunityToolkit.WinUI.Animations;
using Microsoft.UI.Xaml;
using Microsoft.Xaml.Interactivity;
namespace Snap.Hutao.Control.Behavior;
namespace Snap.Hutao.UI.Xaml.Behavior.Action;
[DependencyProperty("Animation", typeof(AnimationSet))]
[DependencyProperty("TargetObject", typeof(UIElement))]

View File

@@ -5,13 +5,13 @@ using CommunityToolkit.WinUI.Behaviors;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
namespace Snap.Hutao.Control.Behavior;
namespace Snap.Hutao.UI.Xaml.Behavior;
[SuppressMessage("", "CA1001")]
[DependencyProperty("MilliSecondsDelay", typeof(int))]
internal sealed partial class InfoBarDelayCloseBehavior : BehaviorBase<InfoBar>
{
private readonly CancellationTokenSource closeTokenSource = new();
private readonly CancellationTokenSource userCloseTokenSource = new();
protected override void OnAssociatedObjectLoaded()
{
@@ -26,9 +26,9 @@ internal sealed partial class InfoBarDelayCloseBehavior : BehaviorBase<InfoBar>
{
try
{
await Task.Delay(MilliSecondsDelay, closeTokenSource.Token).ConfigureAwait(true);
await Task.Delay(MilliSecondsDelay, userCloseTokenSource.Token).ConfigureAwait(true);
}
catch
catch (OperationCanceledException)
{
return;
}
@@ -43,9 +43,9 @@ internal sealed partial class InfoBarDelayCloseBehavior : BehaviorBase<InfoBar>
{
if (args.Reason is InfoBarCloseReason.CloseButton)
{
closeTokenSource.Cancel();
userCloseTokenSource.Cancel();
}
AssociatedObject.Closed -= OnInfoBarClosed;
}
}
}

View File

@@ -5,7 +5,7 @@ using CommunityToolkit.WinUI.Behaviors;
using Microsoft.UI.Xaml;
using Snap.Hutao.Control.Extension;
namespace Snap.Hutao.Control.Behavior;
namespace Snap.Hutao.UI.Xaml.Behavior;
/// <summary>
/// 在元素加载完成后执行命令的行为

View File

@@ -5,20 +5,16 @@ using CommunityToolkit.WinUI.Behaviors;
using Microsoft.UI.Xaml;
using Snap.Hutao.Control.Extension;
namespace Snap.Hutao.Control.Behavior;
namespace Snap.Hutao.UI.Xaml.Behavior;
[SuppressMessage("", "CA1001")]
[DependencyProperty("Period", typeof(TimeSpan))]
[DependencyProperty("Command", typeof(ICommand))]
[DependencyProperty("CommandParameter", typeof(object))]
internal sealed partial class PeriodicInvokeCommandOrOnActualThemeChangedBehavior : BehaviorBase<FrameworkElement>, IDisposable
internal sealed partial class PeriodicInvokeCommandOrOnActualThemeChangedBehavior : BehaviorBase<FrameworkElement>
{
private TaskCompletionSource acutalThemeChangedTaskCompletionSource = new();
private CancellationTokenSource periodicTimerCancellationTokenSource = new();
public void Dispose()
{
periodicTimerCancellationTokenSource.Dispose();
}
private CancellationTokenSource acutalThemeChangedCts = new();
private CancellationTokenSource periodicTimerStopCts = new();
protected override bool Initialize()
{
@@ -26,22 +22,25 @@ internal sealed partial class PeriodicInvokeCommandOrOnActualThemeChangedBehavio
return true;
}
protected override bool Uninitialize()
{
periodicTimerStopCts.Cancel();
periodicTimerStopCts.Dispose();
AssociatedObject.ActualThemeChanged -= OnActualThemeChanged;
acutalThemeChangedCts.Dispose();
return true;
}
protected override void OnAssociatedObjectLoaded()
{
RunCoreAsync().SafeForget();
}
protected override bool Uninitialize()
{
periodicTimerCancellationTokenSource.Cancel();
AssociatedObject.ActualThemeChanged -= OnActualThemeChanged;
return true;
}
private void OnActualThemeChanged(FrameworkElement sender, object args)
{
acutalThemeChangedTaskCompletionSource.TrySetResult();
periodicTimerCancellationTokenSource.Cancel();
acutalThemeChangedCts.Cancel();
}
private void TryExecuteCommand()
@@ -65,6 +64,7 @@ internal sealed partial class PeriodicInvokeCommandOrOnActualThemeChangedBehavio
break;
}
// TODO: Reconsider approach to get the ServiceProvider
ITaskContext taskContext = Ioc.Default.GetRequiredService<ITaskContext>();
await taskContext.SwitchToMainThreadAsync();
TryExecuteCommand();
@@ -72,15 +72,23 @@ internal sealed partial class PeriodicInvokeCommandOrOnActualThemeChangedBehavio
await taskContext.SwitchToBackgroundAsync();
try
{
Task nextTickTask = timer.WaitForNextTickAsync(periodicTimerCancellationTokenSource.Token).AsTask();
await Task.WhenAny(nextTickTask, acutalThemeChangedTaskCompletionSource.Task).ConfigureAwait(false);
using (CancellationTokenSource linkedCts = CancellationTokenSource.CreateLinkedTokenSource(periodicTimerStopCts.Token, periodicTimerStopCts.Token))
{
await timer.WaitForNextTickAsync(linkedCts.Token).ConfigureAwait(false);
}
}
catch (OperationCanceledException)
{
if (periodicTimerStopCts.IsCancellationRequested)
{
break;
}
}
acutalThemeChangedTaskCompletionSource = new();
periodicTimerCancellationTokenSource = new();
acutalThemeChangedCts.Dispose();
acutalThemeChangedCts = new();
periodicTimerStopCts.Dispose();
periodicTimerStopCts = new();
}
while (true);
}

View File

@@ -5,7 +5,7 @@ using CommunityToolkit.WinUI;
using CommunityToolkit.WinUI.Behaviors;
using Microsoft.UI.Xaml.Controls;
namespace Snap.Hutao.Control.Behavior;
namespace Snap.Hutao.UI.Xaml.Behavior;
internal sealed class SelectedItemInViewBehavior : BehaviorBase<ListViewBase>
{

View File

@@ -9,7 +9,7 @@ using Microsoft.UI.Xaml.Controls.Primitives;
using Snap.Hutao.Control.Extension;
using System.Collections;
namespace Snap.Hutao.Control.AutoSuggestBox;
namespace Snap.Hutao.UI.Xaml.Control.Tokenizing;
[DependencyProperty("FilterCommand", typeof(ICommand))]
[DependencyProperty("FilterCommandParameter", typeof(object))]

View File

@@ -3,7 +3,7 @@
using Windows.UI;
namespace Snap.Hutao.Control.AutoSuggestBox;
namespace Snap.Hutao.UI.Xaml.Control.Tokenizing;
internal sealed class SearchToken
{

View File

@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
namespace Snap.Hutao.Control.AutoSuggestBox;
namespace Snap.Hutao.UI.Xaml.Control.Tokenizing;
internal enum SearchTokenKind
{

View File

@@ -1,9 +1,9 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
namespace Snap.Hutao.Control.Animation;
namespace Snap.Hutao.UI.Xaml.Media.Animation;
internal static class ControlAnimationConstants
internal static class Constants
{
/// <summary>
/// 1

View File

@@ -6,7 +6,7 @@ using CommunityToolkit.WinUI.Animations;
using Microsoft.UI.Composition;
using System.Numerics;
namespace Snap.Hutao.Control.Animation;
namespace Snap.Hutao.UI.Xaml.Media.Animation;
/// <summary>
/// 图片放大动画
@@ -19,10 +19,10 @@ internal sealed class ImageZoomInAnimation : ImplicitAnimation<string, Vector3>
/// </summary>
public ImageZoomInAnimation()
{
Duration = ControlAnimationConstants.ImageZoom;
Duration = Constants.ImageZoom;
EasingMode = Microsoft.UI.Xaml.Media.Animation.EasingMode.EaseOut;
EasingType = CommunityToolkit.WinUI.Animations.EasingType.Circle;
To = ControlAnimationConstants.OnePointOne;
To = Constants.OnePointOne;
}
/// <inheritdoc/>

View File

@@ -6,7 +6,7 @@ using CommunityToolkit.WinUI.Animations;
using Microsoft.UI.Composition;
using System.Numerics;
namespace Snap.Hutao.Control.Animation;
namespace Snap.Hutao.UI.Xaml.Media.Animation;
/// <summary>
/// 图片缩小动画
@@ -19,10 +19,10 @@ internal sealed class ImageZoomOutAnimation : ImplicitAnimation<string, Vector3>
/// </summary>
public ImageZoomOutAnimation()
{
Duration = ControlAnimationConstants.ImageZoom;
Duration = Constants.ImageZoom;
EasingMode = Microsoft.UI.Xaml.Media.Animation.EasingMode.EaseOut;
EasingType = CommunityToolkit.WinUI.Animations.EasingType.Circle;
To = ControlAnimationConstants.One;
To = Constants.One;
}
/// <inheritdoc/>

View File

@@ -5,8 +5,8 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shva="using:Snap.Hutao.ViewModel.Achievement"
xmlns:shvc="using:Snap.Hutao.View.Control"
Padding="0"
@@ -21,7 +21,7 @@
Style="{ThemeResource DefaultButtonStyle}"
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Button.Resources>

View File

@@ -5,9 +5,9 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shme="using:Snap.Hutao.Model.Entity"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shvc="using:Snap.Hutao.View.Control"
xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
xmlns:shvd="using:Snap.Hutao.ViewModel.DailyNote"
@@ -24,7 +24,7 @@
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Button.Resources>

View File

@@ -5,8 +5,8 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shvc="using:Snap.Hutao.View.Control"
xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
xmlns:shvg="using:Snap.Hutao.ViewModel.GachaLog"
@@ -23,7 +23,7 @@
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Button.Resources>

View File

@@ -6,8 +6,8 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shvg="using:Snap.Hutao.ViewModel.Game"
MinHeight="180"
Padding="0"
@@ -23,7 +23,7 @@
Style="{ThemeResource DefaultButtonStyle}"
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Grid CornerRadius="{ThemeResource ControlCornerRadius}">
<Grid Margin="12" ColumnSpacing="16">

View File

@@ -301,71 +301,55 @@
</Grid>
</cwcont:Case>
<cwcont:Case Value="{shcm:Int32 Value=1}">
<Grid RowSpacing="4">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid ColumnSpacing="4">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" Style="{ThemeResource GridCardStyle}">
<StackPanel
Margin="8,0"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock
Foreground="{StaticResource OrangeColorBrush}"
Style="{StaticResource CaptionTextBlockStyle}"
Text="{shcm:ResourceString Name=ViewControlStatisticsCardOrangeText}"/>
<Viewbox StretchDirection="DownOnly">
<TextBlock Foreground="{StaticResource OrangeColorBrush}" Text="{Binding TotalOrangeFormatted}"/>
</Viewbox>
</StackPanel>
</Grid>
<Grid Grid.Column="1" Style="{ThemeResource GridCardStyle}">
<StackPanel
Margin="8,0"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock
Foreground="{StaticResource PurpleColorBrush}"
Style="{StaticResource CaptionTextBlockStyle}"
Text="{shcm:ResourceString Name=ViewControlStatisticsCardPurpleText}"/>
<Viewbox StretchDirection="DownOnly">
<TextBlock Foreground="{StaticResource PurpleColorBrush}" Text="{Binding TotalPurpleFormatted}"/>
</Viewbox>
</StackPanel>
</Grid>
<Grid Grid.Column="2" Style="{ThemeResource GridCardStyle}">
<StackPanel
Margin="8,0"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock
Foreground="{StaticResource BlueColorBrush}"
Style="{StaticResource CaptionTextBlockStyle}"
Text="{shcm:ResourceString Name=ViewControlStatisticsCardBlueText}"/>
<Viewbox StretchDirection="DownOnly">
<TextBlock Foreground="{StaticResource BlueColorBrush}" Text="{Binding TotalBlueFormatted}"/>
</Viewbox>
</StackPanel>
</Grid>
<Grid ColumnSpacing="4">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" Style="{ThemeResource GridCardStyle}">
<StackPanel
Margin="8,0"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock
Foreground="{StaticResource OrangeColorBrush}"
Style="{StaticResource CaptionTextBlockStyle}"
Text="{shcm:ResourceString Name=ViewControlStatisticsCardOrangeText}"/>
<Viewbox StretchDirection="DownOnly">
<TextBlock Foreground="{StaticResource OrangeColorBrush}" Text="{Binding TotalOrangeFormatted}"/>
</Viewbox>
</StackPanel>
</Grid>
<Grid Grid.Column="1" Style="{ThemeResource GridCardStyle}">
<StackPanel
Margin="8,0"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock
Foreground="{StaticResource PurpleColorBrush}"
Style="{StaticResource CaptionTextBlockStyle}"
Text="{shcm:ResourceString Name=ViewControlStatisticsCardPurpleText}"/>
<Viewbox StretchDirection="DownOnly">
<TextBlock Foreground="{StaticResource PurpleColorBrush}" Text="{Binding TotalPurpleFormatted}"/>
</Viewbox>
</StackPanel>
</Grid>
<Grid Grid.Column="2" Style="{ThemeResource GridCardStyle}">
<StackPanel
Margin="8,0"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock
Foreground="{StaticResource BlueColorBrush}"
Style="{StaticResource CaptionTextBlockStyle}"
Text="{shcm:ResourceString Name=ViewControlStatisticsCardBlueText}"/>
<Viewbox StretchDirection="DownOnly">
<TextBlock Foreground="{StaticResource BlueColorBrush}" Text="{Binding TotalBlueFormatted}"/>
</Viewbox>
</StackPanel>
</Grid>
<shcb:SegmentedBar
Grid.Row="1"
Height="2"
Margin="2,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Opacity="0.7"
Source="{Binding PullPercentSegmentSource}"/>
</Grid>
</cwcont:Case>
<cwcont:Case Value="{shcm:Int32 Value=2}">
<Grid RowSpacing="4">

View File

@@ -7,14 +7,14 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shvg="using:Snap.Hutao.ViewModel.Guide"
d:DataContext="{d:DesignInstance shvg:GuideViewModel}"
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<UserControl.Resources>

View File

@@ -2,14 +2,13 @@
x:Class="Snap.Hutao.View.InfoBarView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cw="using:CommunityToolkit.WinUI"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shcs="using:Snap.Hutao.Control.Selector"
xmlns:shsn="using:Snap.Hutao.Service.Notification"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
mc:Ignorable="d">
<UserControl.Resources>
@@ -70,7 +69,7 @@
Message="{Binding Message}"
Severity="{Binding Severity}">
<mxi:Interaction.Behaviors>
<shcb:InfoBarDelayCloseBehavior MilliSecondsDelay="{Binding MilliSecondsDelay}"/>
<shuxb:InfoBarDelayCloseBehavior MilliSecondsDelay="{Binding MilliSecondsDelay}"/>
</mxi:Interaction.Behaviors>
</InfoBar>
</DataTemplate>
@@ -87,7 +86,7 @@
<Button Command="{Binding ActionButtonCommand}" Content="{Binding ActionButtonContent}"/>
</InfoBar.ActionButton>
<mxi:Interaction.Behaviors>
<shcb:InfoBarDelayCloseBehavior MilliSecondsDelay="{Binding MilliSecondsDelay}"/>
<shuxb:InfoBarDelayCloseBehavior MilliSecondsDelay="{Binding MilliSecondsDelay}"/>
</mxi:Interaction.Behaviors>
</InfoBar>
</DataTemplate>

View File

@@ -5,9 +5,9 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shch="using:Snap.Hutao.Control.Helper"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shv="using:Snap.Hutao.View"
xmlns:shvcs="using:Snap.Hutao.View.Converter.Specialized"
xmlns:shvh="using:Snap.Hutao.View.Helper"
@@ -17,7 +17,7 @@
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:PeriodicInvokeCommandOrOnActualThemeChangedBehavior Command="{Binding UpdateBackgroundCommand}" Period="0:5:0"/>
<shuxb:PeriodicInvokeCommandOrOnActualThemeChangedBehavior Command="{Binding UpdateBackgroundCommand}" Period="0:5:0"/>
</mxi:Interaction.Behaviors>
<UserControl.Resources>

View File

@@ -9,11 +9,11 @@
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:mxic="using:Microsoft.Xaml.Interactions.Core"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shch="using:Snap.Hutao.Control.Helper"
xmlns:shci="using:Snap.Hutao.Control.Image"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shcp="using:Snap.Hutao.Control.Panel"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shva="using:Snap.Hutao.ViewModel.Achievement"
d:DataContext="{d:DesignInstance shva:AchievementViewModel}"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
@@ -188,7 +188,7 @@
</Page.Resources>
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Grid Visibility="{Binding IsInitialized, Converter={StaticResource BoolToVisibilityConverter}}">
@@ -325,7 +325,7 @@
SelectedItem="{Binding SelectedAchievementGoal, Mode=TwoWay}"
SelectionMode="Single">
<mxi:Interaction.Behaviors>
<shcb:SelectedItemInViewBehavior/>
<shuxb:SelectedItemInViewBehavior/>
</mxi:Interaction.Behaviors>
</ListView>
</SplitView.Pane>
@@ -363,7 +363,7 @@
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<mxi:Interaction.Behaviors>
<shcb:SelectedItemInViewBehavior/>
<shuxb:SelectedItemInViewBehavior/>
</mxi:Interaction.Behaviors>
</GridView>
</cwc:Case>

View File

@@ -10,11 +10,12 @@
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:mxic="using:Microsoft.Xaml.Interactions.Core"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shca="using:Snap.Hutao.Control.Animation"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shch="using:Snap.Hutao.Control.Helper"
xmlns:shci="using:Snap.Hutao.Control.Image"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shuxba="using:Snap.Hutao.UI.Xaml.Behavior.Action"
xmlns:shuxma="using:Snap.Hutao.UI.Xaml.Media.Animation"
xmlns:shvco="using:Snap.Hutao.View.Control"
xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
xmlns:shvh="using:Snap.Hutao.ViewModel.Home"
@@ -22,7 +23,7 @@
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<shc:ScopedPage.Resources>
<shc:BindingProxy x:Key="BindingProxy" DataContext="{Binding}"/>
@@ -55,10 +56,10 @@
</cww:ConstrainedBox>
<cwa:Explicit.Animations>
<cwa:AnimationSet x:Name="ImageZoomInAnimation">
<shca:ImageZoomInAnimation/>
<shuxma:ImageZoomInAnimation/>
</cwa:AnimationSet>
<cwa:AnimationSet x:Name="ImageZoomOutAnimation">
<shca:ImageZoomOutAnimation/>
<shuxma:ImageZoomOutAnimation/>
</cwa:AnimationSet>
</cwa:Explicit.Animations>
</Border>
@@ -141,13 +142,13 @@
<mxi:Interaction.Behaviors>
<mxic:EventTriggerBehavior EventName="Tapped">
<shcb:ShowAttachedFlyoutAction/>
<shuxba:ShowAttachedFlyoutAction/>
</mxic:EventTriggerBehavior>
<mxic:EventTriggerBehavior EventName="PointerEntered">
<shcb:StartAnimationActionNoThrow Animation="{Binding ElementName=ImageZoomInAnimation}" TargetObject="{Binding ElementName=ImageZoomBorder}"/>
<shuxba:StartAnimationActionNoThrow Animation="{Binding ElementName=ImageZoomInAnimation}" TargetObject="{Binding ElementName=ImageZoomBorder}"/>
</mxic:EventTriggerBehavior>
<mxic:EventTriggerBehavior EventName="PointerExited">
<shcb:StartAnimationActionNoThrow Animation="{Binding ElementName=ImageZoomOutAnimation}" TargetObject="{Binding ElementName=ImageZoomBorder}"/>
<shuxba:StartAnimationActionNoThrow Animation="{Binding ElementName=ImageZoomOutAnimation}" TargetObject="{Binding ElementName=ImageZoomBorder}"/>
</mxic:EventTriggerBehavior>
</mxi:Interaction.Behaviors>
</Border>

View File

@@ -10,11 +10,11 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shci="using:Snap.Hutao.Control.Image"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shcp="using:Snap.Hutao.Control.Panel"
xmlns:shct="using:Snap.Hutao.Control.Text"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shva="using:Snap.Hutao.ViewModel.AvatarProperty"
xmlns:shvcont="using:Snap.Hutao.View.Control"
xmlns:shvconv="using:Snap.Hutao.View.Converter"
@@ -23,7 +23,7 @@
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Page.Resources>

View File

@@ -9,10 +9,10 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shci="using:Snap.Hutao.Control.Image"
xmlns:shcl="using:Snap.Hutao.Control.Layout"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shvco="using:Snap.Hutao.View.Control"
xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
xmlns:shvcu="using:Snap.Hutao.ViewModel.Cultivation"
@@ -252,7 +252,7 @@
</Page.Resources>
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Grid Visibility="{Binding IsInitialized, Converter={StaticResource BoolToVisibilityConverter}}">

View File

@@ -9,11 +9,11 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shch="using:Snap.Hutao.Control.Helper"
xmlns:shci="using:Snap.Hutao.Control.Image"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shme="using:Snap.Hutao.Model.Entity"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shvc="using:Snap.Hutao.View.Control"
xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
xmlns:shvd="using:Snap.Hutao.ViewModel.DailyNote"
@@ -22,7 +22,7 @@
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Page.Resources>

View File

@@ -11,16 +11,16 @@
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:mxic="using:Microsoft.Xaml.Interactions.Core"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shci="using:Snap.Hutao.Control.Image"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shvf="using:Snap.Hutao.ViewModel.Feedback"
d:DataContext="{d:DesignInstance shvf:FeedbackViewModel}"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Page.Resources>

View File

@@ -10,10 +10,11 @@
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:mxic="using:Microsoft.Xaml.Interactions.Core"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shci="using:Snap.Hutao.Control.Image"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shcp="using:Snap.Hutao.Control.Panel"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shuxba="using:Snap.Hutao.UI.Xaml.Behavior.Action"
xmlns:shvc="using:Snap.Hutao.View.Control"
xmlns:shvg="using:Snap.Hutao.ViewModel.GachaLog"
d:DataContext="{d:DesignInstance shvg:GachaLogViewModel}"
@@ -21,7 +22,7 @@
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Page.Resources>
@@ -33,7 +34,7 @@
<Flyout x:Key="HutaoCloudFlyout">
<Grid>
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding HutaoCloudViewModel.OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding HutaoCloudViewModel.OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Grid Visibility="{Binding HutaoCloudViewModel.IsInitialized, Converter={StaticResource BoolToVisibilityConverter}}">
<Grid Visibility="{Binding HutaoCloudViewModel.Options.IsCloudServiceAllowed, Converter={StaticResource BoolToVisibilityConverter}}">
@@ -483,7 +484,7 @@
Spacing="16"
Visibility="{Binding HutaoCloudStatisticsViewModel.IsInitialized, Converter={StaticResource BoolToVisibilityConverter}}">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding HutaoCloudStatisticsViewModel.OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding HutaoCloudStatisticsViewModel.OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<shvc:HutaoStatisticsCard DataContext="{Binding HutaoCloudStatisticsViewModel.Statistics.AvatarEvent}"/>
<shvc:HutaoStatisticsCard DataContext="{Binding HutaoCloudStatisticsViewModel.Statistics.AvatarEvent2}"/>
@@ -547,7 +548,7 @@
IsClickEnabled="True">
<mxi:Interaction.Behaviors>
<mxic:EventTriggerBehavior EventName="Click">
<shcb:ShowAttachedFlyoutAction/>
<shuxba:ShowAttachedFlyoutAction/>
</mxic:EventTriggerBehavior>
</mxi:Interaction.Behaviors>
</cwcont:SettingsCard>

View File

@@ -8,11 +8,11 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shccs="using:Snap.Hutao.Control.Collection.Selector"
xmlns:shch="using:Snap.Hutao.Control.Helper"
xmlns:shci="using:Snap.Hutao.Control.Image"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shvc="using:Snap.Hutao.View.Control"
xmlns:shvg="using:Snap.Hutao.ViewModel.Game"
d:DataContext="{d:DesignInstance shvg:LaunchGameViewModel}"
@@ -20,7 +20,7 @@
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Page.Resources>

View File

@@ -10,9 +10,9 @@
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:mxic="using:Microsoft.Xaml.Interactions.Core"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shch="using:Snap.Hutao.Control.Helper"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shvc="using:Snap.Hutao.View.Control"
xmlns:shvs="using:Snap.Hutao.ViewModel.Setting"
d:DataContext="{d:DesignInstance shvs:SettingViewModel}"
@@ -20,7 +20,7 @@
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Grid x:Name="SettingPageGrid">

View File

@@ -9,12 +9,12 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shch="using:Snap.Hutao.Control.Helper"
xmlns:shci="using:Snap.Hutao.Control.Image"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shcp="using:Snap.Hutao.Control.Panel"
xmlns:shct="using:Snap.Hutao.Control.Text"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shvcom="using:Snap.Hutao.ViewModel.Complex"
xmlns:shvcon="using:Snap.Hutao.View.Control"
xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
@@ -24,7 +24,7 @@
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<shc:ScopedPage.Resources>
@@ -501,7 +501,7 @@
<PivotItem Header="{shcm:ResourceString Name=ViewSpiralAbyssHutaoStatistics}">
<Grid DataContext="{Binding HutaoDatabaseViewModel}">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Grid.Resources>

View File

@@ -9,7 +9,7 @@
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:mxic="using:Microsoft.Xaml.Interactions.Core"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shuxba="using:Snap.Hutao.UI.Xaml.Behavior.Action"
xmlns:shv="using:Snap.Hutao.ViewModel"
xmlns:shvc="using:Snap.Hutao.View.Control"
d:DataContext="{d:DesignInstance shv:TestViewModel}"
@@ -20,7 +20,7 @@
<cwc:SettingsCard Header="Adopt Calculator" IsClickEnabled="True">
<mxi:Interaction.Behaviors>
<mxic:EventTriggerBehavior EventName="Click">
<shcb:ShowAttachedFlyoutAction/>
<shuxba:ShowAttachedFlyoutAction/>
</mxic:EventTriggerBehavior>
</mxi:Interaction.Behaviors>
<FlyoutBase.AttachedFlyout>
@@ -40,7 +40,7 @@
<cwc:SettingsCard Header="Community Game Record" IsClickEnabled="True">
<mxi:Interaction.Behaviors>
<mxic:EventTriggerBehavior EventName="Click">
<shcb:ShowAttachedFlyoutAction/>
<shuxba:ShowAttachedFlyoutAction/>
</mxic:EventTriggerBehavior>
</mxi:Interaction.Behaviors>
<FlyoutBase.AttachedFlyout>
@@ -60,7 +60,7 @@
<cwc:SettingsCard Header="SignIn Reward" IsClickEnabled="True">
<mxi:Interaction.Behaviors>
<mxic:EventTriggerBehavior EventName="Click">
<shcb:ShowAttachedFlyoutAction/>
<shuxba:ShowAttachedFlyoutAction/>
</mxic:EventTriggerBehavior>
</mxi:Interaction.Behaviors>
<FlyoutBase.AttachedFlyout>

View File

@@ -8,12 +8,12 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shca="using:Snap.Hutao.Control.AutoSuggestBox"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shci="using:Snap.Hutao.Control.Image"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shcp="using:Snap.Hutao.Control.Panel"
xmlns:shct="using:Snap.Hutao.Control.Text"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shuxct="using:Snap.Hutao.UI.Xaml.Control.Tokenizing"
xmlns:shvcont="using:Snap.Hutao.View.Control"
xmlns:shvconv="using:Snap.Hutao.View.Converter"
xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
@@ -22,7 +22,7 @@
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Page.Resources>
<shvconv:VisibilityToObjectConverter
@@ -315,7 +315,7 @@
LocalSettingKeySuffixForCurrent="WikiAvatarPage.Avatars"/>
</CommandBar.Content>
<AppBarElementContainer>
<shca:AutoSuggestTokenBox
<shuxct:AutoSuggestTokenBox
Width="600"
Height="44"
Margin="6,-2,6,6"
@@ -332,15 +332,15 @@
SuggestedItemsSource="{Binding AvailableTokens.Values}"
Text="{Binding FilterToken, Mode=TwoWay}"
TokenItemTemplate="{StaticResource TokenTemplate}">
<shca:AutoSuggestTokenBox.ItemsPanel>
<shuxct:AutoSuggestTokenBox.ItemsPanel>
<ItemsPanelTemplate>
<cwc:WrapPanel
cw:FrameworkElementExtensions.AncestorType="shca:AutoSuggestTokenBox"
cw:FrameworkElementExtensions.AncestorType="shuxct:AutoSuggestTokenBox"
HorizontalSpacing="2"
StretchChild="Last"/>
</ItemsPanelTemplate>
</shca:AutoSuggestTokenBox.ItemsPanel>
</shca:AutoSuggestTokenBox>
</shuxct:AutoSuggestTokenBox.ItemsPanel>
</shuxct:AutoSuggestTokenBox>
</AppBarElementContainer>
<AppBarButton
Command="{Binding CultivateCommand}"
@@ -371,7 +371,7 @@
SelectedItem="{Binding Selected, Mode=TwoWay}"
SelectionMode="Single">
<mxi:Interaction.Behaviors>
<shcb:SelectedItemInViewBehavior/>
<shuxb:SelectedItemInViewBehavior/>
</mxi:Interaction.Behaviors>
</ListView>
</SplitView.Pane>
@@ -785,7 +785,7 @@
SelectionMode="Single"
Visibility="{Binding Avatars.Count, Converter={StaticResource Int32ToVisibilityConverter}}">
<mxi:Interaction.Behaviors>
<shcb:SelectedItemInViewBehavior/>
<shuxb:SelectedItemInViewBehavior/>
</mxi:Interaction.Behaviors>
</GridView>
</Grid>

View File

@@ -9,11 +9,11 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shci="using:Snap.Hutao.Control.Image"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shcp="using:Snap.Hutao.Control.Panel"
xmlns:shct="using:Snap.Hutao.Control.Text"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shvc="using:Snap.Hutao.View.Control"
xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
xmlns:shvw="using:Snap.Hutao.ViewModel.Wiki"
@@ -21,7 +21,7 @@
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Page.Resources>
@@ -125,7 +125,7 @@
SelectedItem="{Binding Selected, Mode=TwoWay}"
SelectionMode="Single">
<mxi:Interaction.Behaviors>
<shcb:SelectedItemInViewBehavior/>
<shuxb:SelectedItemInViewBehavior/>
</mxi:Interaction.Behaviors>
</ListView>
</SplitView.Pane>
@@ -206,7 +206,7 @@
SelectedItem="{Binding Selected, Mode=TwoWay}"
SelectionMode="Single">
<mxi:Interaction.Behaviors>
<shcb:SelectedItemInViewBehavior/>
<shuxb:SelectedItemInViewBehavior/>
</mxi:Interaction.Behaviors>
</GridView>
</Border>

View File

@@ -7,14 +7,13 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:mxic="using:Microsoft.Xaml.Interactions.Core"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shca="using:Snap.Hutao.Control.AutoSuggestBox"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shci="using:Snap.Hutao.Control.Image"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shcp="using:Snap.Hutao.Control.Panel"
xmlns:shct="using:Snap.Hutao.Control.Text"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shuxct="using:Snap.Hutao.UI.Xaml.Control.Tokenizing"
xmlns:shvc="using:Snap.Hutao.View.Control"
xmlns:shvcp="using:Snap.Hutao.View.Card.Primitive"
xmlns:shvw="using:Snap.Hutao.ViewModel.Wiki"
@@ -22,7 +21,7 @@
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Page.Resources>
@@ -177,7 +176,7 @@
LocalSettingKeySuffixForCurrent="WikiWeaponPage.Weapons"/>
</CommandBar.Content>
<AppBarElementContainer>
<shca:AutoSuggestTokenBox
<shuxct:AutoSuggestTokenBox
x:Name="WeaponSuggestBox"
Width="600"
Height="44"
@@ -194,15 +193,15 @@
SuggestedItemsSource="{Binding AvailableTokens.Values}"
Text="{Binding FilterToken, Mode=TwoWay}"
TokenItemTemplate="{StaticResource TokenTemplate}">
<shca:AutoSuggestTokenBox.ItemsPanel>
<shuxct:AutoSuggestTokenBox.ItemsPanel>
<ItemsPanelTemplate>
<cwc:WrapPanel
cw:FrameworkElementExtensions.AncestorType="shca:AutoSuggestTokenBox"
cw:FrameworkElementExtensions.AncestorType="shuxct:AutoSuggestTokenBox"
HorizontalSpacing="2"
StretchChild="Last"/>
</ItemsPanelTemplate>
</shca:AutoSuggestTokenBox.ItemsPanel>
</shca:AutoSuggestTokenBox>
</shuxct:AutoSuggestTokenBox.ItemsPanel>
</shuxct:AutoSuggestTokenBox>
</AppBarElementContainer>
<AppBarButton
Command="{Binding CultivateCommand}"
@@ -234,7 +233,7 @@
SelectedItem="{Binding Selected, Mode=TwoWay}"
SelectionMode="Single">
<mxi:Interaction.Behaviors>
<shcb:SelectedItemInViewBehavior/>
<shuxb:SelectedItemInViewBehavior/>
</mxi:Interaction.Behaviors>
</ListView>
</SplitView.Pane>
@@ -391,7 +390,7 @@
SelectionMode="Single"
Visibility="{Binding Weapons.Count, Converter={StaticResource Int32ToVisibilityConverter}}">
<mxi:Interaction.Behaviors>
<shcb:SelectedItemInViewBehavior/>
<shuxb:SelectedItemInViewBehavior/>
</mxi:Interaction.Behaviors>
</GridView>
</Grid>

View File

@@ -5,8 +5,8 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shv="using:Snap.Hutao.ViewModel"
Height="44"
VerticalAlignment="Top"
@@ -14,7 +14,7 @@
mc:Ignorable="d">
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<Grid x:Name="DragableGrid">

View File

@@ -8,8 +8,8 @@
xmlns:mxic="using:Microsoft.Xaml.Interactions.Core"
xmlns:mxim="using:Microsoft.Xaml.Interactions.Media"
xmlns:shc="using:Snap.Hutao.Control"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shuxb="using:Snap.Hutao.UI.Xaml.Behavior"
xmlns:shvc="using:Snap.Hutao.View.Control"
xmlns:shvu="using:Snap.Hutao.ViewModel.User"
d:DataContext="{d:DesignInstance shvu:UserViewModel}"
@@ -175,7 +175,7 @@
</UserControl.Resources>
<mxi:Interaction.Behaviors>
<shcb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
<shuxb:InvokeCommandOnLoadedBehavior Command="{Binding OpenUICommand}"/>
</mxi:Interaction.Behaviors>
<StackPanel
Margin="0,0,0,-2"

View File

@@ -2,8 +2,6 @@
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.ComponentModel;
using Snap.Hutao.Control.Brush;
using Snap.Hutao.Control.Theme;
namespace Snap.Hutao.ViewModel.GachaLog;
@@ -85,16 +83,6 @@ internal sealed partial class TypedWishSummary : Wish
get => $"{TotalBluePull} [{(TotalBluePercent is double.NaN ? 0D : TotalBluePercent),6:p2}]";
}
public ColorSegmentCollection PullPercentSegmentSource
{
get =>
[
new ColorSegment(KnownColors.Orange, TotalOrangePull),
new ColorSegment(KnownColors.Purple, TotalPurplePull),
new ColorSegment(KnownColors.Blue, TotalBluePull),
];
}
/// <summary>
/// 平均五星抽数
/// </summary>

View File

@@ -5,11 +5,11 @@ using CommunityToolkit.Mvvm.Messaging;
using CommunityToolkit.WinUI.Animations;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Media.Animation;
using Snap.Hutao.Control.Animation;
using Snap.Hutao.Control.Theme;
using Snap.Hutao.Message;
using Snap.Hutao.Service;
using Snap.Hutao.Service.BackgroundImage;
using Snap.Hutao.UI.Xaml.Media.Animation;
using System.Globalization;
namespace Snap.Hutao.ViewModel;
@@ -58,7 +58,7 @@ internal sealed partial class MainViewModel : Abstraction.ViewModel, IMainViewMo
.Create()
.Opacity(
to: 0D,
duration: ControlAnimationConstants.ImageOpacityFadeInOut,
duration: Constants.ImageOpacityFadeInOut,
easingType: EasingType.Quartic,
easingMode: EasingMode.EaseInOut)
.StartAsync(backgroundImagePresenter)
@@ -81,7 +81,7 @@ internal sealed partial class MainViewModel : Abstraction.ViewModel, IMainViewMo
.Create()
.Opacity(
to: targetOpacity,
duration: ControlAnimationConstants.ImageOpacityFadeInOut,
duration: Constants.ImageOpacityFadeInOut,
easingType: EasingType.Quartic,
easingMode: EasingMode.EaseInOut)
.StartAsync(backgroundImagePresenter)

View File

@@ -1,9 +1,9 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Control.AutoSuggestBox;
using Snap.Hutao.Model.Intrinsic.Frozen;
using Snap.Hutao.Model.Metadata.Avatar;
using Snap.Hutao.UI.Xaml.Control.Tokenizing;
using System.Collections.ObjectModel;
namespace Snap.Hutao.ViewModel.Wiki;

View File

@@ -1,9 +1,9 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Control.AutoSuggestBox;
using Snap.Hutao.Model.Intrinsic.Frozen;
using Snap.Hutao.Model.Metadata.Weapon;
using Snap.Hutao.UI.Xaml.Control.Tokenizing;
using System.Collections.ObjectModel;
namespace Snap.Hutao.ViewModel.Wiki;

View File

@@ -1,7 +1,6 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Control.AutoSuggestBox;
using Snap.Hutao.Control.Collection.AdvancedCollectionView;
using Snap.Hutao.Core.ExceptionService;
using Snap.Hutao.Factory.ContentDialog;
@@ -19,6 +18,7 @@ using Snap.Hutao.Service.Hutao;
using Snap.Hutao.Service.Metadata;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.Service.User;
using Snap.Hutao.UI.Xaml.Control.Tokenizing;
using Snap.Hutao.View.Dialog;
using Snap.Hutao.ViewModel.User;
using Snap.Hutao.Web.Response;

View File

@@ -1,7 +1,6 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
using Snap.Hutao.Control.AutoSuggestBox;
using Snap.Hutao.Control.Collection.AdvancedCollectionView;
using Snap.Hutao.Core.ExceptionService;
using Snap.Hutao.Factory.ContentDialog;
@@ -19,6 +18,7 @@ using Snap.Hutao.Service.Hutao;
using Snap.Hutao.Service.Metadata;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.Service.User;
using Snap.Hutao.UI.Xaml.Control.Tokenizing;
using Snap.Hutao.View.Dialog;
using Snap.Hutao.ViewModel.User;
using Snap.Hutao.Web.Response;