diff --git a/Flow.Launcher.Core/Resource/LocalizedDescriptionAttribute.cs b/Flow.Launcher.Core/Resource/LocalizedDescriptionAttribute.cs
deleted file mode 100644
index acd9d9eb733..00000000000
--- a/Flow.Launcher.Core/Resource/LocalizedDescriptionAttribute.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System.ComponentModel;
-
-namespace Flow.Launcher.Core.Resource
-{
- public class LocalizedDescriptionAttribute : DescriptionAttribute
- {
- private readonly string _resourceKey;
-
- public LocalizedDescriptionAttribute(string resourceKey)
- {
- _resourceKey = resourceKey;
- }
-
- public override string Description
- {
- get
- {
- string description = PublicApi.Instance.GetTranslation(_resourceKey);
- return string.IsNullOrWhiteSpace(description) ?
- string.Format("[[{0}]]", _resourceKey) : description;
- }
- }
- }
-}
diff --git a/Flow.Launcher.Core/Resource/Theme.cs b/Flow.Launcher.Core/Resource/Theme.cs
index d1f7da2a2fe..c3bb6190f01 100644
--- a/Flow.Launcher.Core/Resource/Theme.cs
+++ b/Flow.Launcher.Core/Resource/Theme.cs
@@ -449,9 +449,19 @@ public bool ChangeTheme(string theme = null)
}
return false;
}
- catch (XamlParseException)
+ catch (XamlParseException e)
{
- _api.LogError(ClassName, $"Theme <{theme}> fail to parse");
+ _api.LogException(ClassName, $"Theme <{theme}> fail to parse xaml", e);
+ if (theme != Constant.DefaultTheme)
+ {
+ _api.ShowMsgBox(Localize.theme_load_failure_parse_error(theme));
+ ChangeTheme(Constant.DefaultTheme);
+ }
+ return false;
+ }
+ catch (Exception e)
+ {
+ _api.LogException(ClassName, $"Theme <{theme}> fail to load", e);
if (theme != Constant.DefaultTheme)
{
_api.ShowMsgBox(Localize.theme_load_failure_parse_error(theme));
diff --git a/Flow.Launcher/App.xaml b/Flow.Launcher/App.xaml
index 565bbe3c74c..e922cd55842 100644
--- a/Flow.Launcher/App.xaml
+++ b/Flow.Launcher/App.xaml
@@ -2,7 +2,8 @@
x:Class="Flow.Launcher.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:sys="clr-namespace:System;assembly=mscorlib"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
ShutdownMode="OnMainWindowClose"
Startup="OnStartup">
@@ -10,17 +11,17 @@
-
+
-
+
-
+
@@ -33,6 +34,15 @@
+
+
+ 2
+ 0
+ 0
+ 40
+ 0
+ 36
+
\ No newline at end of file
diff --git a/Flow.Launcher/App.xaml.cs b/Flow.Launcher/App.xaml.cs
index 58f8438d23b..1ca3ce2c637 100644
--- a/Flow.Launcher/App.xaml.cs
+++ b/Flow.Launcher/App.xaml.cs
@@ -22,6 +22,7 @@
using Flow.Launcher.Plugin;
using Flow.Launcher.SettingPages.ViewModels;
using Flow.Launcher.ViewModel;
+using iNKORE.UI.WPF.Modern.Common;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.VisualStudio.Threading;
@@ -56,6 +57,9 @@ public partial class App : IDisposable, ISingleInstanceApp
public App()
{
+ // Do not use bitmap cache since it can cause WPF second window freezing issue
+ ShadowAssist.UseBitmapCache = false;
+
// Initialize settings
_settings.WMPInstalled = WindowsMediaPlayerHelper.IsWindowsMediaPlayerInstalled();
diff --git a/Flow.Launcher/Converters/BoolToIMEConversionModeConverter.cs b/Flow.Launcher/Converters/BoolToIMEConversionModeConverter.cs
index 41e87991317..82da6d936b3 100644
--- a/Flow.Launcher/Converters/BoolToIMEConversionModeConverter.cs
+++ b/Flow.Launcher/Converters/BoolToIMEConversionModeConverter.cs
@@ -5,7 +5,7 @@
namespace Flow.Launcher.Converters;
-internal class BoolToIMEConversionModeConverter : IValueConverter
+public class BoolToIMEConversionModeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
@@ -22,7 +22,7 @@ public object ConvertBack(object value, Type targetType, object parameter, Cultu
}
}
-internal class BoolToIMEStateConverter : IValueConverter
+public class BoolToIMEStateConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
diff --git a/Flow.Launcher/Converters/CornerRadiusFilterConverter.cs b/Flow.Launcher/Converters/CornerRadiusFilterConverter.cs
new file mode 100644
index 00000000000..fd43cafacac
--- /dev/null
+++ b/Flow.Launcher/Converters/CornerRadiusFilterConverter.cs
@@ -0,0 +1,91 @@
+using System;
+using System.Globalization;
+using System.Windows;
+using System.Windows.Data;
+
+namespace Flow.Launcher.Converters;
+
+public class CornerRadiusFilterConverter : DependencyObject, IValueConverter
+{
+ public CornerRadiusFilterKind Filter { get; set; }
+
+ public double Scale { get; set; } = 1.0;
+
+ public static CornerRadius Convert(CornerRadius radius, CornerRadiusFilterKind filterKind)
+ {
+ CornerRadius result = radius;
+
+ switch (filterKind)
+ {
+ case CornerRadiusFilterKind.Top:
+ result.BottomLeft = 0;
+ result.BottomRight = 0;
+ break;
+ case CornerRadiusFilterKind.Right:
+ result.TopLeft = 0;
+ result.BottomLeft = 0;
+ break;
+ case CornerRadiusFilterKind.Bottom:
+ result.TopLeft = 0;
+ result.TopRight = 0;
+ break;
+ case CornerRadiusFilterKind.Left:
+ result.TopRight = 0;
+ result.BottomRight = 0;
+ break;
+ }
+
+ return result;
+ }
+
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ var cornerRadius = (CornerRadius)value;
+
+ var scale = Scale;
+ if (!double.IsNaN(scale))
+ {
+ cornerRadius.TopLeft *= scale;
+ cornerRadius.TopRight *= scale;
+ cornerRadius.BottomRight *= scale;
+ cornerRadius.BottomLeft *= scale;
+ }
+
+ var filterType = Filter;
+ if (filterType == CornerRadiusFilterKind.TopLeftValue ||
+ filterType == CornerRadiusFilterKind.BottomRightValue)
+ {
+ return GetDoubleValue(cornerRadius, filterType);
+ }
+
+ return Convert(cornerRadius, filterType);
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+
+ private static double GetDoubleValue(CornerRadius radius, CornerRadiusFilterKind filterKind)
+ {
+ switch (filterKind)
+ {
+ case CornerRadiusFilterKind.TopLeftValue:
+ return radius.TopLeft;
+ case CornerRadiusFilterKind.BottomRightValue:
+ return radius.BottomRight;
+ }
+ return 0;
+ }
+}
+
+public enum CornerRadiusFilterKind
+{
+ None,
+ Top,
+ Right,
+ Bottom,
+ Left,
+ TopLeftValue,
+ BottomRightValue
+}
diff --git a/Flow.Launcher/Converters/PlacementRectangleConverter.cs b/Flow.Launcher/Converters/PlacementRectangleConverter.cs
new file mode 100644
index 00000000000..130d04e160e
--- /dev/null
+++ b/Flow.Launcher/Converters/PlacementRectangleConverter.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Globalization;
+using System.Windows;
+using System.Windows.Data;
+
+namespace Flow.Launcher.Converters;
+
+public class PlacementRectangleConverter : IMultiValueConverter
+{
+ public Thickness Margin { get; set; }
+
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (values.Length == 2 &&
+ values[0] is double width &&
+ values[1] is double height)
+ {
+ var margin = Margin;
+ var topLeft = new Point(margin.Left, margin.Top);
+ var bottomRight = new Point(width - margin.Right, height - margin.Bottom);
+ var rect = new Rect(topLeft, bottomRight);
+ return rect;
+ }
+
+ return Rect.Empty;
+ }
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+}
diff --git a/Flow.Launcher/Converters/SharedSizeGroupConverter.cs b/Flow.Launcher/Converters/SharedSizeGroupConverter.cs
new file mode 100644
index 00000000000..59478702749
--- /dev/null
+++ b/Flow.Launcher/Converters/SharedSizeGroupConverter.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Globalization;
+using System.Windows;
+using System.Windows.Data;
+
+namespace Flow.Launcher.Converters;
+
+public class SharedSizeGroupConverter : IValueConverter
+{
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return (Visibility)value != Visibility.Collapsed ? (string)parameter : null;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+}
diff --git a/Flow.Launcher/Converters/StringToKeyBindingConverter.cs b/Flow.Launcher/Converters/StringToKeyBindingConverter.cs
index 21bf584e7a9..b7bca41c54e 100644
--- a/Flow.Launcher/Converters/StringToKeyBindingConverter.cs
+++ b/Flow.Launcher/Converters/StringToKeyBindingConverter.cs
@@ -5,7 +5,7 @@
namespace Flow.Launcher.Converters;
-class StringToKeyBindingConverter : IValueConverter
+public class StringToKeyBindingConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
diff --git a/Flow.Launcher/Flow.Launcher.csproj b/Flow.Launcher/Flow.Launcher.csproj
index aa8e95429ef..8c7670426bb 100644
--- a/Flow.Launcher/Flow.Launcher.csproj
+++ b/Flow.Launcher/Flow.Launcher.csproj
@@ -138,6 +138,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
@@ -146,9 +147,6 @@
-
-
-
all
diff --git a/Flow.Launcher/Helper/BorderHelper.cs b/Flow.Launcher/Helper/BorderHelper.cs
new file mode 100644
index 00000000000..0f2a78e7dd6
--- /dev/null
+++ b/Flow.Launcher/Helper/BorderHelper.cs
@@ -0,0 +1,33 @@
+using System.Windows;
+using System.Windows.Controls;
+
+namespace Flow.Launcher.Helper;
+
+public static class BorderHelper
+{
+ #region Child
+
+ public static readonly DependencyProperty ChildProperty =
+ DependencyProperty.RegisterAttached(
+ "Child",
+ typeof(UIElement),
+ typeof(BorderHelper),
+ new PropertyMetadata(default(UIElement), OnChildChanged));
+
+ public static UIElement GetChild(Border border)
+ {
+ return (UIElement)border.GetValue(ChildProperty);
+ }
+
+ public static void SetChild(Border border, UIElement value)
+ {
+ border.SetValue(ChildProperty, value);
+ }
+
+ private static void OnChildChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ ((Border)d).Child = (UIElement)e.NewValue;
+ }
+
+ #endregion
+}
diff --git a/Flow.Launcher/HotkeyControlDialog.xaml b/Flow.Launcher/HotkeyControlDialog.xaml
index d416f1bdcda..9fdfda865e7 100644
--- a/Flow.Launcher/HotkeyControlDialog.xaml
+++ b/Flow.Launcher/HotkeyControlDialog.xaml
@@ -2,7 +2,7 @@
x:Class="Flow.Launcher.HotkeyControlDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
Background="{DynamicResource PopuBGColor}"
BorderBrush="{DynamicResource PopupButtonAreaBorderColor}"
BorderThickness="0 1 0 0"
diff --git a/Flow.Launcher/HotkeyControlDialog.xaml.cs b/Flow.Launcher/HotkeyControlDialog.xaml.cs
index 740425f8bff..e1fc86f9541 100644
--- a/Flow.Launcher/HotkeyControlDialog.xaml.cs
+++ b/Flow.Launcher/HotkeyControlDialog.xaml.cs
@@ -9,7 +9,7 @@
using Flow.Launcher.Infrastructure.Hotkey;
using Flow.Launcher.Infrastructure.UserSettings;
using Flow.Launcher.Plugin;
-using ModernWpf.Controls;
+using iNKORE.UI.WPF.Modern.Controls;
namespace Flow.Launcher;
diff --git a/Flow.Launcher/MainWindow.xaml b/Flow.Launcher/MainWindow.xaml
index 132ec838978..dd47f9d4ede 100644
--- a/Flow.Launcher/MainWindow.xaml
+++ b/Flow.Launcher/MainWindow.xaml
@@ -6,7 +6,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:flowlauncher="clr-namespace:Flow.Launcher"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:vm="clr-namespace:Flow.Launcher.ViewModel"
Name="FlowMainWindow"
Title="Flow Launcher"
diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs
index 01a7dc9bd50..b2ba33269af 100644
--- a/Flow.Launcher/MainWindow.xaml.cs
+++ b/Flow.Launcher/MainWindow.xaml.cs
@@ -25,7 +25,8 @@
using Flow.Launcher.Plugin.SharedCommands;
using Flow.Launcher.Plugin.SharedModels;
using Flow.Launcher.ViewModel;
-using ModernWpf.Controls;
+using iNKORE.UI.WPF.Modern;
+using iNKORE.UI.WPF.Modern.Controls;
using DataObject = System.Windows.DataObject;
using Key = System.Windows.Input.Key;
using MouseButtons = System.Windows.Forms.MouseButtons;
@@ -191,11 +192,11 @@ private void OnLoaded(object sender, RoutedEventArgs e)
// Initialize color scheme
if (_settings.ColorScheme == Constant.Light)
{
- ModernWpf.ThemeManager.Current.ApplicationTheme = ModernWpf.ApplicationTheme.Light;
+ ThemeManager.Current.ApplicationTheme = ApplicationTheme.Light;
}
else if (_settings.ColorScheme == Constant.Dark)
{
- ModernWpf.ThemeManager.Current.ApplicationTheme = ModernWpf.ApplicationTheme.Dark;
+ ThemeManager.Current.ApplicationTheme = ApplicationTheme.Dark;
}
// Initialize position
diff --git a/Flow.Launcher/PluginUpdateWindow.xaml b/Flow.Launcher/PluginUpdateWindow.xaml
index 04cd1f7bc11..a4bb0643169 100644
--- a/Flow.Launcher/PluginUpdateWindow.xaml
+++ b/Flow.Launcher/PluginUpdateWindow.xaml
@@ -4,6 +4,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:flowlauncher="clr-namespace:Flow.Launcher"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
Title="{DynamicResource updateAllPluginsButtonContent}"
Width="530"
Background="{DynamicResource PopuBGColor}"
@@ -66,13 +67,13 @@
Text="{DynamicResource updateAllPluginsButtonContent}"
TextAlignment="Left" />
-
-
+
-
+
@@ -161,18 +162,23 @@
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="5"
- Margin="18 0 18 0">
-
+ Margin="6 0 18 0">
+
-
+ Height="500"
+ Margin="15 0 0 0"
+ Padding="0 0 15 0"
+ HorizontalAlignment="Stretch">
@@ -193,11 +199,11 @@
VerticalScrollBarVisibility="Disabled"
Visibility="Collapsed" />
-
+
-
+
Properties.Settings.Default.GithubRepo + "/releases";
public ReleaseNotesWindow()
{
InitializeComponent();
- SeeMore.Uri = ReleaseNotes;
- ModernWpf.ThemeManager.Current.ActualApplicationThemeChanged += ThemeManager_ActualApplicationThemeChanged;
+ ThemeManager.Current.ActualApplicationThemeChanged += ThemeManager_ActualApplicationThemeChanged;
}
#region Window Events
- private void ThemeManager_ActualApplicationThemeChanged(ModernWpf.ThemeManager sender, object args)
+ private void ThemeManager_ActualApplicationThemeChanged(ThemeManager sender, object args)
{
Application.Current.Dispatcher.Invoke(() =>
{
- if (ModernWpf.ThemeManager.Current.ActualApplicationTheme == ModernWpf.ApplicationTheme.Light)
+ if (ThemeManager.Current.ActualApplicationTheme == ApplicationTheme.Light)
{
MarkdownViewer.MarkdownStyle = (Style)Application.Current.Resources["DocumentStyleGithubLikeLight"];
MarkdownViewer.Foreground = Brushes.Black;
@@ -58,7 +58,7 @@ private void OnCloseExecuted(object sender, ExecutedRoutedEventArgs e)
private void Window_Closed(object sender, EventArgs e)
{
- ModernWpf.ThemeManager.Current.ActualApplicationThemeChanged -= ThemeManager_ActualApplicationThemeChanged;
+ ThemeManager.Current.ActualApplicationThemeChanged -= ThemeManager_ActualApplicationThemeChanged;
}
#endregion
@@ -147,7 +147,6 @@ private async void RefreshMarkdownViewer()
private void Grid_SizeChanged(object sender, SizeChangedEventArgs e)
{
MarkdownScrollViewer.Height = e.NewSize.Height;
- MarkdownScrollViewer.Width = e.NewSize.Width;
}
private void MarkdownViewer_MouseWheel(object sender, MouseWheelEventArgs e)
diff --git a/Flow.Launcher/Resources/Controls/Card.xaml b/Flow.Launcher/Resources/Controls/Card.xaml
deleted file mode 100644
index e3c5f819490..00000000000
--- a/Flow.Launcher/Resources/Controls/Card.xaml
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Flow.Launcher/Resources/Controls/Card.xaml.cs b/Flow.Launcher/Resources/Controls/Card.xaml.cs
deleted file mode 100644
index 6a70dded2c9..00000000000
--- a/Flow.Launcher/Resources/Controls/Card.xaml.cs
+++ /dev/null
@@ -1,67 +0,0 @@
-using System.Windows;
-using UserControl = System.Windows.Controls.UserControl;
-
-namespace Flow.Launcher.Resources.Controls
-{
- public partial class Card : UserControl
- {
- public enum CardType
- {
- Default,
- Inside,
- InsideFit,
- First,
- Middle,
- Last
- }
-
- public Card()
- {
- InitializeComponent();
- }
-
- public string Title
- {
- get { return (string)GetValue(TitleProperty); }
- set { SetValue(TitleProperty, value); }
- }
- public static readonly DependencyProperty TitleProperty =
- DependencyProperty.Register(nameof(Title), typeof(string), typeof(Card), new PropertyMetadata(string.Empty));
-
- public string Sub
- {
- get { return (string)GetValue(SubProperty); }
- set { SetValue(SubProperty, value); }
- }
- public static readonly DependencyProperty SubProperty =
- DependencyProperty.Register(nameof(Sub), typeof(string), typeof(Card), new PropertyMetadata(string.Empty));
-
- public string Icon
- {
- get { return (string)GetValue(IconProperty); }
- set { SetValue(IconProperty, value); }
- }
- public static readonly DependencyProperty IconProperty =
- DependencyProperty.Register(nameof(Icon), typeof(string), typeof(Card), new PropertyMetadata(string.Empty));
-
- ///
- /// Gets or sets additional content for the UserControl
- ///
- public object AdditionalContent
- {
- get { return (object)GetValue(AdditionalContentProperty); }
- set { SetValue(AdditionalContentProperty, value); }
- }
- public static readonly DependencyProperty AdditionalContentProperty =
- DependencyProperty.Register(nameof(AdditionalContent), typeof(object), typeof(Card),
- new PropertyMetadata(null));
- public CardType Type
- {
- get { return (CardType)GetValue(TypeProperty); }
- set { SetValue(TypeProperty, value); }
- }
- public static readonly DependencyProperty TypeProperty =
- DependencyProperty.Register(nameof(Type), typeof(CardType), typeof(Card),
- new PropertyMetadata(CardType.Default));
- }
-}
diff --git a/Flow.Launcher/Resources/Controls/CardGroup.xaml b/Flow.Launcher/Resources/Controls/CardGroup.xaml
deleted file mode 100644
index f48bf4b6c9f..00000000000
--- a/Flow.Launcher/Resources/Controls/CardGroup.xaml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Flow.Launcher/Resources/Controls/CardGroup.xaml.cs b/Flow.Launcher/Resources/Controls/CardGroup.xaml.cs
deleted file mode 100644
index b9588275c7f..00000000000
--- a/Flow.Launcher/Resources/Controls/CardGroup.xaml.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using System;
-using System.Collections.ObjectModel;
-using System.Windows;
-using System.Windows.Controls;
-
-namespace Flow.Launcher.Resources.Controls;
-
-public partial class CardGroup : UserControl
-{
- public enum CardGroupPosition
- {
- NotInGroup,
- First,
- Middle,
- Last
- }
-
- public new ObservableCollection Content
- {
- get { return (ObservableCollection)GetValue(ContentProperty); }
- set { SetValue(ContentProperty, value); }
- }
-
- public static new readonly DependencyProperty ContentProperty =
- DependencyProperty.Register(nameof(Content), typeof(ObservableCollection), typeof(CardGroup));
-
- public static readonly DependencyProperty PositionProperty = DependencyProperty.RegisterAttached(
- "Position", typeof(CardGroupPosition), typeof(CardGroup),
- new FrameworkPropertyMetadata(CardGroupPosition.NotInGroup, FrameworkPropertyMetadataOptions.AffectsRender)
- );
-
- public static void SetPosition(UIElement element, CardGroupPosition value)
- {
- element.SetValue(PositionProperty, value);
- }
-
- public static CardGroupPosition GetPosition(UIElement element)
- {
- return (CardGroupPosition)element.GetValue(PositionProperty);
- }
-
- public CardGroup()
- {
- InitializeComponent();
- Content = new ObservableCollection();
- }
-}
diff --git a/Flow.Launcher/Resources/Controls/CardGroupCardStyleSelector.cs b/Flow.Launcher/Resources/Controls/CardGroupCardStyleSelector.cs
deleted file mode 100644
index 605934e80c1..00000000000
--- a/Flow.Launcher/Resources/Controls/CardGroupCardStyleSelector.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System.Windows;
-using System.Windows.Controls;
-
-namespace Flow.Launcher.Resources.Controls;
-
-public class CardGroupCardStyleSelector : StyleSelector
-{
- public Style FirstStyle { get; set; }
- public Style MiddleStyle { get; set; }
- public Style LastStyle { get; set; }
-
- public override Style SelectStyle(object item, DependencyObject container)
- {
- var itemsControl = ItemsControl.ItemsControlFromItemContainer(container);
- var index = itemsControl.ItemContainerGenerator.IndexFromContainer(container);
-
- if (index == 0) return FirstStyle;
- if (index == itemsControl.Items.Count - 1) return LastStyle;
- return MiddleStyle;
- }
-}
diff --git a/Flow.Launcher/Resources/Controls/CustomScrollViewerEx.cs b/Flow.Launcher/Resources/Controls/CustomScrollViewerEx.cs
new file mode 100644
index 00000000000..78985108ce2
--- /dev/null
+++ b/Flow.Launcher/Resources/Controls/CustomScrollViewerEx.cs
@@ -0,0 +1,253 @@
+using iNKORE.UI.WPF.Modern.Controls;
+using iNKORE.UI.WPF.Modern.Controls.Helpers;
+using iNKORE.UI.WPF.Modern.Controls.Primitives;
+using System;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Input;
+
+namespace Flow.Launcher.Resources.Controls
+{
+ // TODO: Use IsScrollAnimationEnabled property in future: https://github.com/iNKORE-NET/UI.WPF.Modern/pull/347
+ public class CustomScrollViewerEx : ScrollViewer
+ {
+ private double LastVerticalLocation = 0;
+ private double LastHorizontalLocation = 0;
+
+ public CustomScrollViewerEx()
+ {
+ Loaded += OnLoaded;
+ var valueSource = DependencyPropertyHelper.GetValueSource(this, AutoPanningMode.IsEnabledProperty).BaseValueSource;
+ if (valueSource == BaseValueSource.Default)
+ {
+ AutoPanningMode.SetIsEnabled(this, true);
+ }
+ }
+
+ #region Orientation
+
+ public static readonly DependencyProperty OrientationProperty =
+ DependencyProperty.Register(
+ nameof(Orientation),
+ typeof(Orientation),
+ typeof(CustomScrollViewerEx),
+ new PropertyMetadata(Orientation.Vertical));
+
+ public Orientation Orientation
+ {
+ get => (Orientation)GetValue(OrientationProperty);
+ set => SetValue(OrientationProperty, value);
+ }
+
+ #endregion
+
+ #region AutoHideScrollBars
+
+ public static readonly DependencyProperty AutoHideScrollBarsProperty =
+ ScrollViewerHelper.AutoHideScrollBarsProperty
+ .AddOwner(
+ typeof(CustomScrollViewerEx),
+ new PropertyMetadata(true, OnAutoHideScrollBarsChanged));
+
+ public bool AutoHideScrollBars
+ {
+ get => (bool)GetValue(AutoHideScrollBarsProperty);
+ set => SetValue(AutoHideScrollBarsProperty, value);
+ }
+
+ private static void OnAutoHideScrollBarsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ if (d is CustomScrollViewerEx sv)
+ {
+ sv.UpdateVisualState();
+ }
+ }
+
+ #endregion
+
+ private void OnLoaded(object sender, RoutedEventArgs e)
+ {
+ LastVerticalLocation = VerticalOffset;
+ LastHorizontalLocation = HorizontalOffset;
+ UpdateVisualState(false);
+ }
+
+ ///
+ protected override void OnInitialized(EventArgs e)
+ {
+ base.OnInitialized(e);
+
+ if (Style == null && ReadLocalValue(StyleProperty) == DependencyProperty.UnsetValue)
+ {
+ SetResourceReference(StyleProperty, typeof(ScrollViewer));
+ }
+ }
+
+ ///
+ protected override void OnMouseWheel(MouseWheelEventArgs e)
+ {
+ var Direction = GetDirection();
+ ScrollViewerBehavior.SetIsAnimating(this, true);
+
+ if (Direction == Orientation.Vertical)
+ {
+ if (ScrollableHeight > 0)
+ {
+ e.Handled = true;
+ }
+
+ var WheelChange = e.Delta * (ViewportHeight / 1.5) / ActualHeight;
+ var newOffset = LastVerticalLocation - WheelChange;
+
+ if (newOffset < 0)
+ {
+ newOffset = 0;
+ }
+
+ if (newOffset > ScrollableHeight)
+ {
+ newOffset = ScrollableHeight;
+ }
+
+ if (newOffset == LastVerticalLocation)
+ {
+ return;
+ }
+
+ ScrollToVerticalOffset(LastVerticalLocation);
+
+ ScrollToValue(newOffset, Direction);
+ LastVerticalLocation = newOffset;
+ }
+ else
+ {
+ if (ScrollableWidth > 0)
+ {
+ e.Handled = true;
+ }
+
+ var WheelChange = e.Delta * (ViewportWidth / 1.5) / ActualWidth;
+ var newOffset = LastHorizontalLocation - WheelChange;
+
+ if (newOffset < 0)
+ {
+ newOffset = 0;
+ }
+
+ if (newOffset > ScrollableWidth)
+ {
+ newOffset = ScrollableWidth;
+ }
+
+ if (newOffset == LastHorizontalLocation)
+ {
+ return;
+ }
+
+ ScrollToHorizontalOffset(LastHorizontalLocation);
+
+ ScrollToValue(newOffset, Direction);
+ LastHorizontalLocation = newOffset;
+ }
+ }
+
+ ///
+ protected override void OnScrollChanged(ScrollChangedEventArgs e)
+ {
+ base.OnScrollChanged(e);
+ if (!ScrollViewerBehavior.GetIsAnimating(this))
+ {
+ LastVerticalLocation = VerticalOffset;
+ LastHorizontalLocation = HorizontalOffset;
+ }
+ }
+
+ private Orientation GetDirection()
+ {
+ var isShiftDown = Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift);
+
+ if (Orientation == Orientation.Horizontal)
+ {
+ return isShiftDown ? Orientation.Vertical : Orientation.Horizontal;
+ }
+ else
+ {
+ return isShiftDown ? Orientation.Horizontal : Orientation.Vertical;
+ }
+ }
+
+ ///
+ /// Causes the to load a new view into the viewport using the specified offsets and zoom factor.
+ ///
+ /// A value between 0 and that specifies the distance the content should be scrolled horizontally.
+ /// A value between 0 and that specifies the distance the content should be scrolled vertically.
+ /// A value between MinZoomFactor and MaxZoomFactor that specifies the required target ZoomFactor.
+ /// if the view is changed; otherwise, .
+ public bool ChangeView(double? horizontalOffset, double? verticalOffset, float? zoomFactor)
+ {
+ return ChangeView(horizontalOffset, verticalOffset, zoomFactor, false);
+ }
+
+ ///
+ /// Causes the to load a new view into the viewport using the specified offsets and zoom factor, and optionally disables scrolling animation.
+ ///
+ /// A value between 0 and that specifies the distance the content should be scrolled horizontally.
+ /// A value between 0 and that specifies the distance the content should be scrolled vertically.
+ /// A value between MinZoomFactor and MaxZoomFactor that specifies the required target ZoomFactor.
+ /// to disable zoom/pan animations while changing the view; otherwise, . The default is false.
+ /// if the view is changed; otherwise, .
+ public bool ChangeView(double? horizontalOffset, double? verticalOffset, float? zoomFactor, bool disableAnimation)
+ {
+ if (disableAnimation)
+ {
+ if (horizontalOffset.HasValue)
+ {
+ ScrollToHorizontalOffset(horizontalOffset.Value);
+ }
+
+ if (verticalOffset.HasValue)
+ {
+ ScrollToVerticalOffset(verticalOffset.Value);
+ }
+ }
+ else
+ {
+ if (horizontalOffset.HasValue)
+ {
+ ScrollToHorizontalOffset(LastHorizontalLocation);
+ ScrollToValue(Math.Min(ScrollableWidth, horizontalOffset.Value), Orientation.Horizontal);
+ LastHorizontalLocation = horizontalOffset.Value;
+ }
+
+ if (verticalOffset.HasValue)
+ {
+ ScrollToVerticalOffset(LastVerticalLocation);
+ ScrollToValue(Math.Min(ScrollableHeight, verticalOffset.Value), Orientation.Vertical);
+ LastVerticalLocation = verticalOffset.Value;
+ }
+ }
+
+ return true;
+ }
+
+ private void ScrollToValue(double value, Orientation Direction)
+ {
+ if (Direction == Orientation.Vertical)
+ {
+ ScrollToVerticalOffset(value);
+ }
+ else
+ {
+ ScrollToHorizontalOffset(value);
+ }
+
+ ScrollViewerBehavior.SetIsAnimating(this, false);
+ }
+
+ private void UpdateVisualState(bool useTransitions = true)
+ {
+ var stateName = AutoHideScrollBars ? "NoIndicator" : "MouseIndicator";
+ VisualStateManager.GoToState(this, stateName, useTransitions);
+ }
+ }
+}
diff --git a/Flow.Launcher/Resources/Controls/ExCard.xaml b/Flow.Launcher/Resources/Controls/ExCard.xaml
deleted file mode 100644
index a70c0f4ea46..00000000000
--- a/Flow.Launcher/Resources/Controls/ExCard.xaml
+++ /dev/null
@@ -1,312 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Flow.Launcher/Resources/Controls/ExCard.xaml.cs b/Flow.Launcher/Resources/Controls/ExCard.xaml.cs
deleted file mode 100644
index f149951f039..00000000000
--- a/Flow.Launcher/Resources/Controls/ExCard.xaml.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using System.Windows;
-using System.Windows.Controls;
-
-namespace Flow.Launcher.Resources.Controls
-{
- public partial class ExCard : UserControl
- {
- public ExCard()
- {
- InitializeComponent();
- }
- public string Title
- {
- get { return (string)GetValue(TitleProperty); }
- set { SetValue(TitleProperty, value); }
- }
- public static readonly DependencyProperty TitleProperty =
- DependencyProperty.Register(nameof(Title), typeof(string), typeof(ExCard), new PropertyMetadata(string.Empty));
-
- public string Sub
- {
- get { return (string)GetValue(SubProperty); }
- set { SetValue(SubProperty, value); }
- }
- public static readonly DependencyProperty SubProperty =
- DependencyProperty.Register(nameof(Sub), typeof(string), typeof(ExCard), new PropertyMetadata(string.Empty));
-
- public string Icon
- {
- get { return (string)GetValue(IconProperty); }
- set { SetValue(IconProperty, value); }
- }
- public static readonly DependencyProperty IconProperty =
- DependencyProperty.Register(nameof(Icon), typeof(string), typeof(ExCard), new PropertyMetadata(string.Empty));
-
- ///
- /// Gets or sets additional content for the UserControl
- ///
- public object AdditionalContent
- {
- get { return (object)GetValue(AdditionalContentProperty); }
- set { SetValue(AdditionalContentProperty, value); }
- }
- public static readonly DependencyProperty AdditionalContentProperty =
- DependencyProperty.Register(nameof(AdditionalContent), typeof(object), typeof(ExCard),
- new PropertyMetadata(null));
-
- public object SideContent
- {
- get { return (object)GetValue(SideContentProperty); }
- set { SetValue(SideContentProperty, value); }
- }
- public static readonly DependencyProperty SideContentProperty =
- DependencyProperty.Register(nameof(SideContent), typeof(object), typeof(ExCard),
- new PropertyMetadata(null));
- }
-}
diff --git a/Flow.Launcher/Resources/Controls/HyperLink.xaml b/Flow.Launcher/Resources/Controls/HyperLink.xaml
deleted file mode 100644
index 9ea550afd51..00000000000
--- a/Flow.Launcher/Resources/Controls/HyperLink.xaml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
diff --git a/Flow.Launcher/Resources/Controls/HyperLink.xaml.cs b/Flow.Launcher/Resources/Controls/HyperLink.xaml.cs
deleted file mode 100644
index 855cccdbd60..00000000000
--- a/Flow.Launcher/Resources/Controls/HyperLink.xaml.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Navigation;
-
-namespace Flow.Launcher.Resources.Controls;
-
-public partial class HyperLink : UserControl
-{
- public static readonly DependencyProperty UriProperty = DependencyProperty.Register(
- nameof(Uri), typeof(string), typeof(HyperLink), new PropertyMetadata(default(string))
- );
-
- public string Uri
- {
- get => (string)GetValue(UriProperty);
- set => SetValue(UriProperty, value);
- }
-
- public static readonly DependencyProperty TextProperty = DependencyProperty.Register(
- nameof(Text), typeof(string), typeof(HyperLink), new PropertyMetadata(default(string))
- );
-
- public string Text
- {
- get => (string)GetValue(TextProperty);
- set => SetValue(TextProperty, value);
- }
-
- public HyperLink()
- {
- InitializeComponent();
- }
-
- private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
- {
- App.API.OpenUrl(e.Uri);
- e.Handled = true;
- }
-}
diff --git a/Flow.Launcher/Resources/Controls/InfoBar.xaml b/Flow.Launcher/Resources/Controls/InfoBar.xaml
deleted file mode 100644
index 2ddcbdd0cc8..00000000000
--- a/Flow.Launcher/Resources/Controls/InfoBar.xaml
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Flow.Launcher/Resources/Controls/InfoBar.xaml.cs b/Flow.Launcher/Resources/Controls/InfoBar.xaml.cs
deleted file mode 100644
index ebf763e22ab..00000000000
--- a/Flow.Launcher/Resources/Controls/InfoBar.xaml.cs
+++ /dev/null
@@ -1,222 +0,0 @@
-using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Media;
-
-namespace Flow.Launcher.Resources.Controls
-{
- public partial class InfoBar : UserControl
- {
- public InfoBar()
- {
- InitializeComponent();
- Loaded += InfoBar_Loaded;
- }
-
- private void InfoBar_Loaded(object sender, RoutedEventArgs e)
- {
- UpdateStyle();
- UpdateTitleVisibility();
- UpdateMessageVisibility();
- UpdateOrientation();
- UpdateIconAlignmentAndMargin();
- UpdateIconVisibility();
- UpdateCloseButtonVisibility();
- }
-
- public static readonly DependencyProperty TypeProperty =
- DependencyProperty.Register(nameof(Type), typeof(InfoBarType), typeof(InfoBar), new PropertyMetadata(InfoBarType.Info, OnTypeChanged));
-
- public InfoBarType Type
- {
- get => (InfoBarType)GetValue(TypeProperty);
- set => SetValue(TypeProperty, value);
- }
-
- private static void OnTypeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- if (d is InfoBar infoBar)
- {
- infoBar.UpdateStyle();
- }
- }
-
- public static readonly DependencyProperty MessageProperty =
- DependencyProperty.Register(nameof(Message), typeof(string), typeof(InfoBar), new PropertyMetadata(string.Empty, OnMessageChanged));
-
- public string Message
- {
- get => (string)GetValue(MessageProperty);
- set
- {
- SetValue(MessageProperty, value);
- }
- }
-
- private static void OnMessageChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- if (d is InfoBar infoBar)
- {
- infoBar.UpdateMessageVisibility();
- }
- }
-
- private void UpdateMessageVisibility()
- {
- PART_Message.Visibility = string.IsNullOrEmpty(Message) ? Visibility.Collapsed : Visibility.Visible;
- }
-
- public static readonly DependencyProperty TitleProperty =
- DependencyProperty.Register(nameof(Title), typeof(string), typeof(InfoBar), new PropertyMetadata(string.Empty, OnTitleChanged));
-
- public string Title
- {
- get => (string)GetValue(TitleProperty);
- set
- {
- SetValue(TitleProperty, value);
- UpdateTitleVisibility(); // Visibility update when change Title
- }
- }
-
- private static void OnTitleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- if (d is InfoBar infoBar)
- {
- infoBar.UpdateTitleVisibility();
- }
- }
-
- private void UpdateTitleVisibility()
- {
- PART_Title.Visibility = string.IsNullOrEmpty(Title) ? Visibility.Collapsed : Visibility.Visible;
- }
-
- public static readonly DependencyProperty IsIconVisibleProperty =
- DependencyProperty.Register(nameof(IsIconVisible), typeof(bool), typeof(InfoBar), new PropertyMetadata(true, OnIsIconVisibleChanged));
-
- public bool IsIconVisible
- {
- get => (bool)GetValue(IsIconVisibleProperty);
- set => SetValue(IsIconVisibleProperty, value);
- }
-
- public static readonly DependencyProperty LengthProperty =
- DependencyProperty.Register(nameof(Length), typeof(InfoBarLength), typeof(InfoBar), new PropertyMetadata(InfoBarLength.Short, OnLengthChanged));
-
- public InfoBarLength Length
- {
- get { return (InfoBarLength)GetValue(LengthProperty); }
- set { SetValue(LengthProperty, value); }
- }
-
- private static void OnLengthChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- if (d is InfoBar infoBar)
- {
- infoBar.UpdateOrientation();
- infoBar.UpdateIconAlignmentAndMargin();
- }
- }
-
- private void UpdateOrientation()
- {
- PART_StackPanel.Orientation = Length == InfoBarLength.Long ? Orientation.Vertical : Orientation.Horizontal;
- }
-
- private void UpdateIconAlignmentAndMargin()
- {
- if (Length == InfoBarLength.Short)
- {
- PART_IconBorder.VerticalAlignment = VerticalAlignment.Center;
- PART_IconBorder.Margin = new Thickness(0, 0, 12, 0);
- }
- else
- {
- PART_IconBorder.VerticalAlignment = VerticalAlignment.Top;
- PART_IconBorder.Margin = new Thickness(0, 2, 12, 0);
- }
- }
-
- public static readonly DependencyProperty ClosableProperty =
- DependencyProperty.Register(nameof(Closable), typeof(bool), typeof(InfoBar), new PropertyMetadata(true, OnClosableChanged));
-
- public bool Closable
- {
- get => (bool)GetValue(ClosableProperty);
- set => SetValue(ClosableProperty, value);
- }
-
- private void PART_CloseButton_Click(object sender, RoutedEventArgs e)
- {
- Visibility = Visibility.Collapsed;
- }
-
- private void UpdateStyle()
- {
- switch (Type)
- {
- case InfoBarType.Info:
- PART_Border.Background = (Brush)FindResource("InfoBarInfoBG");
- PART_IconBorder.Background = (Brush)FindResource("InfoBarInfoIcon");
- PART_Icon.Glyph = "\xF13F";
- break;
- case InfoBarType.Success:
- PART_Border.Background = (Brush)FindResource("InfoBarSuccessBG");
- PART_IconBorder.Background = (Brush)FindResource("InfoBarSuccessIcon");
- PART_Icon.Glyph = "\xF13E";
- break;
- case InfoBarType.Warning:
- PART_Border.Background = (Brush)FindResource("InfoBarWarningBG");
- PART_IconBorder.Background = (Brush)FindResource("InfoBarWarningIcon");
- PART_Icon.Glyph = "\xF13C";
- break;
- case InfoBarType.Error:
- PART_Border.Background = (Brush)FindResource("InfoBarErrorBG");
- PART_IconBorder.Background = (Brush)FindResource("InfoBarErrorIcon");
- PART_Icon.Glyph = "\xF13D";
- break;
- default:
- PART_Border.Background = (Brush)FindResource("InfoBarInfoBG");
- PART_IconBorder.Background = (Brush)FindResource("InfoBarInfoIcon");
- PART_Icon.Glyph = "\xF13F";
- break;
- }
- }
-
- private static void OnIsIconVisibleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- var infoBar = (InfoBar)d;
- infoBar.UpdateIconVisibility();
- }
-
- private static void OnClosableChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- var infoBar = (InfoBar)d;
- infoBar.UpdateCloseButtonVisibility();
- }
-
- private void UpdateIconVisibility()
- {
- PART_IconBorder.Visibility = IsIconVisible ? Visibility.Visible : Visibility.Collapsed;
- }
-
- private void UpdateCloseButtonVisibility()
- {
- PART_CloseButton.Visibility = Closable ? Visibility.Visible : Visibility.Collapsed;
- }
- }
-
- public enum InfoBarType
- {
- Info,
- Success,
- Warning,
- Error
- }
-
- public enum InfoBarLength
- {
- Short,
- Long
- }
-}
diff --git a/Flow.Launcher/Resources/Controls/InstalledPluginDisplay.xaml b/Flow.Launcher/Resources/Controls/InstalledPluginDisplay.xaml
index 0842a64f345..eb0906c4c4f 100644
--- a/Flow.Launcher/Resources/Controls/InstalledPluginDisplay.xaml
+++ b/Flow.Launcher/Resources/Controls/InstalledPluginDisplay.xaml
@@ -6,7 +6,7 @@
xmlns:converters="clr-namespace:Flow.Launcher.Converters"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:viewModel="clr-namespace:Flow.Launcher.ViewModel"
d:DataContext="{d:DesignInstance viewModel:PluginViewModel}"
d:DesignHeight="300"
@@ -66,6 +66,7 @@
Text="{DynamicResource priority}"
ToolTip="{DynamicResource priorityToolTip}" />
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern">
Segoe UI
@@ -26,6 +29,7 @@
{DynamicResource SettingWindowFont}
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
- 0,0,0,4
- 12,6,0,6
- 11,5,32,6
- 32
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
- 0,0,0,4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8,5,8,6
-
-
-
-
+
-
-
- 0:0:0.033
- 0:0:0.367
- 0.1,0.9 0.2,1.0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0,0,8,0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 40
- 4,4,4,4
- 1
- 1
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- F1 M 17.939453 5.439453 L 7.5 15.888672 L 2.060547 10.439453 L 2.939453 9.560547 L 7.5 14.111328 L 17.060547 4.560547 Z
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- M 5.029297 19.091797 L 14.111328 10 L 5.029297 0.908203 L 5.908203 0.029297 L 15.888672 10 L 5.908203 19.970703 Z
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 48
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
+
@@ -5138,7 +2576,7 @@
-
+
@@ -5163,10 +2601,8 @@
-
+
+
@@ -5249,13 +2685,13 @@
-
-
+
-
+
-
+
@@ -5489,14 +2925,12 @@
-
-
-
+
+
\ No newline at end of file
diff --git a/Flow.Launcher/Resources/Dark.xaml b/Flow.Launcher/Resources/Dark.xaml
index 3fd66d62337..51d1e2b2754 100644
--- a/Flow.Launcher/Resources/Dark.xaml
+++ b/Flow.Launcher/Resources/Dark.xaml
@@ -1,9 +1,9 @@
@@ -55,14 +55,12 @@
-
-
-
-
+
+
@@ -76,8 +74,6 @@
- #272727
-
#202020
#2b2b2b
#1d1d1d
@@ -107,29 +103,22 @@
#f5f5f5
#464646
#ffffff
-
- #272727
+
+
-
+
+
-
-
-
-
-
-
+
@@ -150,1522 +139,4 @@
0,0,0,0
1,1,1,1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1,1,1,1
- 0,0,0,0
- 1,1,1,1
- 1,1,1,1
-
-
-
-
-
-
-
- 1,1,1,1
- 0,0,0,1
-
-
- 4,4,4,4
- 4,4,4,4
-
-
-
-
-
-
-
-
- #FF000000
- #33000000
- #99000000
- #CC000000
- #66000000
- #FFFFFFFF
- #33FFFFFF
- #99FFFFFF
- #CCFFFFFF
- #66FFFFFF
- #45FFFFFF
- #FFF2F2F2
- #FF000000
- #33000000
- #66000000
- #CC000000
- #FF333333
- #FF858585
- #FF767676
- #FF171717
- #FF1F1F1F
- #FF323232
- #FF2B2B2B
- #FFFFFFFF
- #FF767676
- #19FFFFFF
- #33FFFFFF
- #FFF000
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 24
- 48
- 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 374
- 0
- 1
- 0,2,0,2
- -1,0,-1,0
- 12,11,0,13
-
-
-
- 12
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 64
- 1
- 1
- 0
- 0,4,0,4
- Normal
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 11,5,11,7
- 11,11,11,13
- 11,11,11,13
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 160
- 240
- 480
- 198
-
-
-
-
-
-
-
- 1
- 0,0,0,1
- 0,1,0,0
- 0
- 0
- 0
-
-
- 1
- 1,1,1,0
- 1,0,1,1
-
-
-
- 320
- 548
- 184
- 756
- 130
- 202
- 32
- 32
- 56
- 1
- 0,0,4,0
- 0,0,0,0
- 0,0,0,0
- 0,0,0,0
- 0,24,0,0
- 0,0,0,12
- 24,18,24,24
-
-
-
-
-
-
- 0.6
- 0.8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0,0,0,4
- 1
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
- 758
- 456
- 40
- 96
- 240
- 1
- 0
- 12,11,12,12
-
-
-
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0
-
-
- 44
- 44
- 20
- 20
-
-
-
-
-
-
- -40.5
- 0.55
- 0.80
- 0.80
- 0.50
- 0.95
- 10.0
- 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0
-
-
-
-
-
-
- 1
- 32
- 1
- 0,0
- 24,0,0,0
- 11,9,11,10
- 11,4,11,7
- 28,0,0,0
- 56,0,0,0
- 12,4,12,4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
- 0
-
-
-
-
-
-
-
- 0.8
- 1.0
- 0
- 2
-
-
- 24
- 40
- 14
- -25
- 12,0,12,0
- 12,0,12,0
- 0
- 0,6,0,0
- 12,14,0,13
- 350
- Bold
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0.6
- 4
- 0
- #33FFFFFF
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 4
- 2
- 0
- 0,0,0,4
- Normal
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
- 320
- 48
- 0,0,1,0
- 1,0,0,0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 80
- 1
- 1
- 0,0,0,4
- 0,0,20,0
- 20,0,0,0
- Normal
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 12
- 1
- 8,5,8,7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
- 64
- 1
- 2
- 0,9.5,0,9.5
- 0,0,-2,0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
- False
-
-
-
-
-
\ No newline at end of file
diff --git a/Flow.Launcher/Resources/Light.xaml b/Flow.Launcher/Resources/Light.xaml
index 112815ed0f1..f196db299d8 100644
--- a/Flow.Launcher/Resources/Light.xaml
+++ b/Flow.Launcher/Resources/Light.xaml
@@ -1,9 +1,9 @@
@@ -51,12 +51,12 @@
-
+
@@ -71,8 +71,6 @@
- #f6f6f6
-
#f3f3f3
#ffffff
#e5e5e5
@@ -99,32 +97,22 @@
#f5f5f5
#878787
#1b1b1b
-
- #f6f6f6
-
-
+
+
-
+
-
-
-
-
-
-
+
@@ -145,1526 +133,4 @@
1,1,1,1
0,0,0,0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1,1,1,0
- 0,0,0,2
- 1,1,1,0
- 1,1,1,1
-
-
-
-
-
-
-
- 1,1,1,1
- 0,0,0,1
-
-
-
- 4,4,4,4
- 4,4,4,4
-
-
-
-
-
-
-
-
-
- #FFFFFFFF
- #33FFFFFF
- #99FFFFFF
- #CCFFFFFF
- #66FFFFFF
- #FF000000
- #33000000
- #99000000
- #CC000000
- #66000000
-
- #3E000000
- #FF171717
- #FF000000
- #33000000
- #66000000
- #CC000000
- #FFCCCCCC
- #FF7A7A7A
- #FFCCCCCC
- #FFF2F2F2
- #FFE6E6E6
- #FFE6E6E6
- #FFF2F2F2
- #FFFFFFFF
- #FF767676
- #19000000
- #33000000
- #C50500
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 24
- 48
- 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 374
- 0
- 1
- 0,2,0,2
- -1,0,-1,0
- 10,11,0,13
-
-
-
- 12
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 64
- 1
- 1
- 0
- 0,4,0,4
- Normal
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 11,5,11,7
- 11,11,11,13
- 11,11,11,13
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 160
- 240
- 480
- 198
-
-
-
-
-
-
-
- 1
- 0,0,0,1
- 0,1,0,0
- 0
- 0
- 0
-
-
- 1
- 1,1,1,0
- 1,0,1,1
-
-
-
- 320
- 548
- 184
- 756
- 130
- 202
- 32
- 32
- 56
- 1
- 0,0,4,0
- 0,0,0,0
- 0,0,0,0
- 0,0,0,0
- 0,24,0,0
- 0,0,0,12
- 24,18,24,24
-
-
-
-
-
-
- 0.4
- 0.6
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0,0,0,4
- 1
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
- 758
- 456
- 40
- 96
- 240
- 1
- 0
- 12,11,12,12
-
-
-
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0
-
-
- 44
- 44
- 20
- 20
-
-
-
-
-
-
- -40.5
- 0.55
- 0.80
- 0.80
- 0.50
- 0.95
- 10.0
- 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0
-
-
-
-
-
-
- 1
- 32
- 1
- 0,0
- 24,0,0,0
- 11,9,11,10
- 11,4,11,7
- 28,0,0,0
- 56,0,0,0
- 12,4,12,4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
- 0
-
-
-
-
-
-
-
- 0.8
- 1.0
- 0
- 2
-
-
- 24
- 40
- 14
- -25
- 12,0,12,0
- 12,0,12,0
- 0
- 0,6,0,0
- 12,14,0,13
- 350
- Bold
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0.6
- 4
- 0
- #29C50500
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 4
- 2
- 0
- 0,0,0,4
- Normal
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
- 320
- 48
- 0,0,1,0
- 1,0,0,0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 80
- 1
- 1
- 0,0,0,4
- 0,0,20,0
- 20,0,0,0
- Normal
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 12
- 1
- 8,5,8,7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
-
- 64
- 1
- 2
- 0,9.5,0,9.5
- 0,0,-2,0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- True
- False
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/Flow.Launcher/Resources/Pages/WelcomePage1.xaml b/Flow.Launcher/Resources/Pages/WelcomePage1.xaml
index ea651d4ee7e..4b25f8cc4dc 100644
--- a/Flow.Launcher/Resources/Pages/WelcomePage1.xaml
+++ b/Flow.Launcher/Resources/Pages/WelcomePage1.xaml
@@ -5,7 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Flow.Launcher.Resources.Pages"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
Title="WelcomePage1"
DataContext="{Binding RelativeSource={RelativeSource Self}}"
mc:Ignorable="d">
@@ -99,11 +99,11 @@
-
+
-
+
@@ -156,7 +156,8 @@
+ Text="{DynamicResource Welcome_Page1_Title}"
+ TextWrapping="WrapWithOverflow" />
-
+
diff --git a/Flow.Launcher/Resources/Pages/WelcomePage2.xaml b/Flow.Launcher/Resources/Pages/WelcomePage2.xaml
index cf0dff9ab37..34fe1cdfc5b 100644
--- a/Flow.Launcher/Resources/Pages/WelcomePage2.xaml
+++ b/Flow.Launcher/Resources/Pages/WelcomePage2.xaml
@@ -7,7 +7,7 @@
xmlns:flowlauncher="clr-namespace:Flow.Launcher"
xmlns:local="clr-namespace:Flow.Launcher.Resources.Pages"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
Title="WelcomePage2"
DataContext="{Binding RelativeSource={RelativeSource Self}}"
mc:Ignorable="d">
@@ -34,11 +34,11 @@
-
+
-
+
@@ -89,12 +89,13 @@
-
-
+
+
+ Text="{DynamicResource Welcome_Page2_Title}"
+ TextWrapping="WrapWithOverflow" />
-
+
-
+
diff --git a/Flow.Launcher/Resources/Pages/WelcomePage3.xaml b/Flow.Launcher/Resources/Pages/WelcomePage3.xaml
index 0c1dcfea047..17396e680a2 100644
--- a/Flow.Launcher/Resources/Pages/WelcomePage3.xaml
+++ b/Flow.Launcher/Resources/Pages/WelcomePage3.xaml
@@ -4,9 +4,10 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cc="clr-namespace:Flow.Launcher.Resources.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:ikw="http://schemas.inkore.net/lib/ui/wpf"
xmlns:local="clr-namespace:Flow.Launcher.Resources.Pages"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
Title="WelcomePage3"
VerticalAlignment="Stretch"
mc:Ignorable="d">
@@ -40,75 +41,97 @@
FontSize="20"
FontWeight="SemiBold"
Text="{DynamicResource Welcome_Page3_Title}" />
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Height="1"
+ Background="{DynamicResource Color03B}"
+ BorderThickness="0" />
+
+
+
+
-
+
-
+
diff --git a/Flow.Launcher/Resources/Pages/WelcomePage4.xaml b/Flow.Launcher/Resources/Pages/WelcomePage4.xaml
index c319d7c6e16..1ed09e4c2e8 100644
--- a/Flow.Launcher/Resources/Pages/WelcomePage4.xaml
+++ b/Flow.Launcher/Resources/Pages/WelcomePage4.xaml
@@ -5,7 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Flow.Launcher.Resources.Pages"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
Title="WelcomePage4"
d:DesignHeight="450"
d:DesignWidth="800"
@@ -54,7 +54,7 @@
-
+
@@ -93,7 +93,8 @@
+ Text="{DynamicResource Welcome_Page4_Title}"
+ TextWrapping="WrapWithOverflow" />
-
+
diff --git a/Flow.Launcher/Resources/Pages/WelcomePage5.xaml b/Flow.Launcher/Resources/Pages/WelcomePage5.xaml
index 997f724b9ed..0ead0700080 100644
--- a/Flow.Launcher/Resources/Pages/WelcomePage5.xaml
+++ b/Flow.Launcher/Resources/Pages/WelcomePage5.xaml
@@ -5,7 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Flow.Launcher.Resources.Pages"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:userSettings="clr-namespace:Flow.Launcher.Infrastructure.UserSettings;assembly=Flow.Launcher.Infrastructure"
Title="WelcomePage5"
d:DesignHeight="450"
@@ -49,11 +49,11 @@
-
+
-
+
@@ -79,12 +79,13 @@
-
+
+ Text="{DynamicResource Welcome_Page5_Title}"
+ TextWrapping="WrapWithOverflow" />
-
+
diff --git a/Flow.Launcher/Resources/SettingWindowStyle.xaml b/Flow.Launcher/Resources/SettingWindowStyle.xaml
index 3ebd22c742c..fc4a932247e 100644
--- a/Flow.Launcher/Resources/SettingWindowStyle.xaml
+++ b/Flow.Launcher/Resources/SettingWindowStyle.xaml
@@ -2,39 +2,17 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converters="clr-namespace:Flow.Launcher.Converters"
- xmlns:core="clr-namespace:Flow.Launcher.Core.Resource;assembly=Flow.Launcher.Core">
+ xmlns:core="clr-namespace:Flow.Launcher.Core.Resource;assembly=Flow.Launcher.Core"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
+ xmlns:wpftk="clr-namespace:WpfToolkit.Controls;assembly=VirtualizingWrapPanel">
F1 M512,512z M0,0z M448,256C448,150,362,64,256,64L256,448C362,448,448,362,448,256z M0,256A256,256,0,1,1,512,256A256,256,0,1,1,0,256z
-
-
+
+
-
-
+
+
-
-
-
-
-
+
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/Flow.Launcher/ResultListBox.xaml b/Flow.Launcher/ResultListBox.xaml
index e469bb63b16..e815c873595 100644
--- a/Flow.Launcher/ResultListBox.xaml
+++ b/Flow.Launcher/ResultListBox.xaml
@@ -25,6 +25,7 @@
SelectionChanged="OnSelectionChanged"
SelectionMode="Single"
Style="{DynamicResource BaseListboxStyle}"
+ VirtualizingPanel.ScrollUnit="Item"
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.VirtualizationMode="Standard"
Visibility="{Binding Visibility}"
diff --git a/Flow.Launcher/SelectBrowserWindow.xaml b/Flow.Launcher/SelectBrowserWindow.xaml
index 67c22b07d19..8af33206cd8 100644
--- a/Flow.Launcher/SelectBrowserWindow.xaml
+++ b/Flow.Launcher/SelectBrowserWindow.xaml
@@ -5,7 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Flow.Launcher"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:vm="clr-namespace:Flow.Launcher.ViewModel"
Title="{DynamicResource defaultBrowserTitle}"
Width="550"
diff --git a/Flow.Launcher/SelectFileManagerWindow.xaml b/Flow.Launcher/SelectFileManagerWindow.xaml
index cd4bec42466..b81b1b0f4a6 100644
--- a/Flow.Launcher/SelectFileManagerWindow.xaml
+++ b/Flow.Launcher/SelectFileManagerWindow.xaml
@@ -5,7 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Flow.Launcher"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:vm="clr-namespace:Flow.Launcher.ViewModel"
Title="{DynamicResource fileManagerWindow}"
Width="600"
@@ -75,9 +75,9 @@
-
+
-
+
Settings.ColorScheme;
set
{
- ThemeManagerForColorSchemeSwitch.Current.ApplicationTheme = value switch
+ ThemeManager.Current.ApplicationTheme = value switch
{
Constant.Light => ApplicationTheme.Light,
Constant.Dark => ApplicationTheme.Dark,
Constant.System => null,
- _ => ThemeManagerForColorSchemeSwitch.Current.ApplicationTheme
+ _ => ThemeManager.Current.ApplicationTheme
};
Settings.ColorScheme = value;
_ = _theme.RefreshFrameAsync();
diff --git a/Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml b/Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml
index 5710138c0f5..4801caa365c 100644
--- a/Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml
+++ b/Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml
@@ -4,9 +4,10 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cc="clr-namespace:Flow.Launcher.Resources.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:ikw="http://schemas.inkore.net/lib/ui/wpf"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:settingsVm="clr-namespace:Flow.Launcher.SettingPages.ViewModels"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
Title="About"
d:DataContext="{d:DesignInstance Type=settingsVm:SettingsPaneAboutViewModel}"
d:DesignHeight="450"
@@ -17,9 +18,7 @@
-
@@ -31,80 +30,80 @@
Text="{DynamicResource about}"
TextAlignment="left" />
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
-
-
-
-
-
+ Description="{DynamicResource userdatapathToolTip}"
+ Header="{DynamicResource userdatapath}">
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
-
+
-
-
-
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
+
diff --git a/Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml.cs b/Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml.cs
index 47532b243eb..07aaace14f5 100644
--- a/Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml.cs
+++ b/Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml.cs
@@ -28,10 +28,4 @@ protected override void OnNavigatedTo(NavigationEventArgs e)
}
base.OnNavigatedTo(e);
}
-
- private void OnRequestNavigate(object sender, RequestNavigateEventArgs e)
- {
- App.API.OpenUrl(e.Uri.AbsoluteUri);
- e.Handled = true;
- }
}
diff --git a/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml b/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml
index 07cc7b6a750..e4445b0f20d 100644
--- a/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml
+++ b/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml
@@ -6,9 +6,10 @@
xmlns:converters="clr-namespace:Flow.Launcher.Converters"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ext="clr-namespace:Flow.Launcher.Resources.MarkupExtensions"
+ xmlns:ikw="http://schemas.inkore.net/lib/ui/wpf"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:settingsViewModels="clr-namespace:Flow.Launcher.SettingPages.ViewModels"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:userSettings="clr-namespace:Flow.Launcher.Infrastructure.UserSettings;assembly=Flow.Launcher.Infrastructure"
Title="General"
d:DataContext="{d:DesignInstance settingsViewModels:SettingsPaneGeneralViewModel}"
@@ -18,9 +19,7 @@
-
@@ -33,272 +32,293 @@
Text="{DynamicResource general}"
TextAlignment="left" />
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
+
-
+
-
-
+ Description="{DynamicResource showAtTopmostToolTip}"
+ Header="{DynamicResource showAtTopmost}">
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
-
-
+
-
-
-
-
+ Text="{Binding Settings.CustomWindowTop}"
+ TextWrapping="NoWrap" />
-
-
+
+
-
+ Description="{DynamicResource ignoreHotkeysOnFullscreenToolTip}"
+ Header="{DynamicResource ignoreHotkeysOnFullscreen}">
+
+
+
+
-
+
-
+ Description="{Binding AlwaysPreviewToolTip}"
+ Header="{DynamicResource AlwaysPreview}">
+
+
+
+
-
+
-
+ Description="{DynamicResource autoUpdatesTooltip}"
+ Header="{DynamicResource autoUpdates}">
+
+
+
+
-
+
+
+
+
+
+
-
-
+
-
-
-
-
+
-
-
-
-
-
-
-
-
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+ Description="{DynamicResource dialogJumpToolTip}"
+ Header="{DynamicResource dialogJump}">
+
+
+
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Description="{DynamicResource homePageToolTip}"
+ Header="{DynamicResource homePage}">
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Description="{DynamicResource defaultFileManagerToolTip}"
+ Header="{DynamicResource defaultFileManager}">
+
+
+
+
-
+
+
+
+
+
+
-
-
+
-
+
-
+
-
+
-
+
-
+ Description="{DynamicResource typingStartEnTooltip}"
+ Header="{DynamicResource typingStartEn}">
+
+
+
+
-
+
+
+
+
+
+
-
-
+
-
-
-
-
-
-
-
-
+ IsEqualToBool=True}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
+
+
-
+
diff --git a/Flow.Launcher/SettingPages/Views/SettingsPaneHotkey.xaml b/Flow.Launcher/SettingPages/Views/SettingsPaneHotkey.xaml
index d82d6baa0c2..e8b445cee16 100644
--- a/Flow.Launcher/SettingPages/Views/SettingsPaneHotkey.xaml
+++ b/Flow.Launcher/SettingPages/Views/SettingsPaneHotkey.xaml
@@ -5,8 +5,9 @@
xmlns:cc="clr-namespace:Flow.Launcher.Resources.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:flowlauncher="clr-namespace:Flow.Launcher"
+ xmlns:ikw="http://schemas.inkore.net/lib/ui/wpf"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:userSettings="clr-namespace:Flow.Launcher.Infrastructure.UserSettings;assembly=Flow.Launcher.Infrastructure"
xmlns:viewModels="clr-namespace:Flow.Launcher.SettingPages.ViewModels"
Title="Hotkey"
@@ -14,7 +15,7 @@
d:DesignHeight="450"
d:DesignWidth="800"
mc:Ignorable="d">
-
-
+
+
+
+
+
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ Description="{DynamicResource dialogJumpHotkeyToolTip}"
+ Header="{DynamicResource dialogJumpHotkey}">
+
+
+
+
-
+
-
-
-
+ Description="{DynamicResource hotkeyPresetsToolTip}"
+ Header="{DynamicResource hotkeyPresets}">
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Style="{StaticResource SettingSeparatorStyle}" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Style="{StaticResource SettingSeparatorStyle}" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/Flow.Launcher/SettingPages/Views/SettingsPanePluginStore.xaml b/Flow.Launcher/SettingPages/Views/SettingsPanePluginStore.xaml
index c73369fcd21..aa027e19ec4 100644
--- a/Flow.Launcher/SettingPages/Views/SettingsPanePluginStore.xaml
+++ b/Flow.Launcher/SettingPages/Views/SettingsPanePluginStore.xaml
@@ -3,9 +3,10 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:ikw="http://schemas.inkore.net/lib/ui/wpf"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:viewModels="clr-namespace:Flow.Launcher.SettingPages.ViewModels"
xmlns:wpftk="clr-namespace:WpfToolkit.Controls;assembly=VirtualizingWrapPanel"
Title="PluginStore"
@@ -51,21 +52,22 @@
Grid.Column="1"
Margin="5 24 0 0">
-
+ Orientation="Horizontal"
+ Spacing="8">
-
+
@@ -94,14 +96,12 @@
@@ -112,48 +112,19 @@
Height="34"
Margin="0 0 26 0"
HorizontalAlignment="Right"
+ VerticalContentAlignment="Center"
+ ui:ControlHelper.PlaceholderText="{DynamicResource searchplugin}"
ContextMenu="{StaticResource TextBoxContextMenu}"
DockPanel.Dock="Right"
FontSize="14"
Text="{Binding FilterText, UpdateSourceTrigger=PropertyChanged}"
- TextAlignment="Left"
ToolTip="{DynamicResource searchpluginToolTip}"
ToolTipService.InitialShowDelay="200"
- ToolTipService.Placement="Top">
-
-
-
-
-
-
+ ToolTipService.Placement="Top" />
+
-
-
+ VirtualizingPanel.ScrollUnit="Pixel"
+ VirtualizingPanel.VirtualizationMode="Recycling">
+
-
-
+
+
+
-
-
-
+ ToolTipService.Placement="Top" />
+
-
-
+
-
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
-
+
-
+
-
+
diff --git a/Flow.Launcher/SettingPages/Views/SettingsPaneTheme.xaml b/Flow.Launcher/SettingPages/Views/SettingsPaneTheme.xaml
index 796a08fdc7d..20b8dfb9ca2 100644
--- a/Flow.Launcher/SettingPages/Views/SettingsPaneTheme.xaml
+++ b/Flow.Launcher/SettingPages/Views/SettingsPaneTheme.xaml
@@ -6,8 +6,9 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ext="clr-namespace:Flow.Launcher.Resources.MarkupExtensions"
xmlns:flowlauncher="clr-namespace:Flow.Launcher"
+ xmlns:ikw="http://schemas.inkore.net/lib/ui/wpf"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:userSettings="clr-namespace:Flow.Launcher.Infrastructure.UserSettings;assembly=Flow.Launcher.Infrastructure"
xmlns:viewModels="clr-namespace:Flow.Launcher.SettingPages.ViewModels"
Title="Theme"
@@ -23,9 +24,8 @@
-
@@ -89,10 +89,8 @@
-
+
+
-
+
@@ -396,310 +394,323 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Content="{DynamicResource browserMoreThemes}"
+ NavigateUri="{Binding LinkThemeGallery}" />
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Severity="Warning" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+ MinWidth="150"
+ Text="{Binding PlaceholderText}"
+ TextWrapping="NoWrap" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+ Description="{DynamicResource SoundEffectTip}"
+ Header="{DynamicResource SoundEffect}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+ Description="{DynamicResource useGlyphUIEffect}"
+ Header="{DynamicResource useGlyphUI}">
+
+
+
+
-
+
-
-
-
-
-
-
-
-
+ Description="{DynamicResource showBadgesToolTip}"
+ Header="{DynamicResource showBadges}">
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
-
+
-
+
+
+
+
+
-
+
-
+ Content="{DynamicResource howToCreateTheme}"
+ NavigateUri="{Binding LinkHowToCreateTheme}" />
-
+
diff --git a/Flow.Launcher/SettingWindow.xaml b/Flow.Launcher/SettingWindow.xaml
index da128266c2c..9bc3d496ed3 100644
--- a/Flow.Launcher/SettingWindow.xaml
+++ b/Flow.Launcher/SettingWindow.xaml
@@ -4,7 +4,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:ui="http://schemas.modernwpf.com/2019"
+ xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
xmlns:vm="clr-namespace:Flow.Launcher.ViewModel"
Title="{DynamicResource flowlauncher_settings}"
Width="{Binding SettingWindowWidth, Mode=TwoWay}"
@@ -266,8 +266,5 @@
-
-
-
diff --git a/Flow.Launcher/SettingWindow.xaml.cs b/Flow.Launcher/SettingWindow.xaml.cs
index 0e3e6999620..a318592a6bd 100644
--- a/Flow.Launcher/SettingWindow.xaml.cs
+++ b/Flow.Launcher/SettingWindow.xaml.cs
@@ -3,14 +3,13 @@
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
-using System.Windows.Interop;
using CommunityToolkit.Mvvm.DependencyInjection;
using Flow.Launcher.Infrastructure;
using Flow.Launcher.Infrastructure.UserSettings;
using Flow.Launcher.Plugin.SharedModels;
using Flow.Launcher.SettingPages.Views;
using Flow.Launcher.ViewModel;
-using ModernWpf.Controls;
+using iNKORE.UI.WPF.Modern.Controls;
namespace Flow.Launcher;
@@ -43,12 +42,6 @@ private void OnLoaded(object sender, RoutedEventArgs e)
{
RefreshMaximizeRestoreButton();
- // Fix (workaround) for the window freezes after lock screen (Win+L) or sleep
- // https://stackoverflow.com/questions/4951058/software-rendering-mode-wpf
- HwndSource hwndSource = PresentationSource.FromVisual(this) as HwndSource;
- HwndTarget hwndTarget = hwndSource.CompositionTarget;
- hwndTarget.RenderMode = RenderMode.SoftwareOnly; // Must use software only render mode here
-
UpdatePositionAndState();
_viewModel.PropertyChanged += ViewModel_PropertyChanged;
diff --git a/Flow.Launcher/Themes/Base.xaml b/Flow.Launcher/Themes/Base.xaml
index a5ded7e59a3..c5b45890bf4 100644
--- a/Flow.Launcher/Themes/Base.xaml
+++ b/Flow.Launcher/Themes/Base.xaml
@@ -1,7 +1,9 @@
0
0
@@ -46,20 +48,20 @@
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="True">
-
-
+
-
-
+
+
@@ -250,9 +252,12 @@
-
-
-
-
+
-
+
diff --git a/Flow.Launcher/Themes/BlurWhite.xaml b/Flow.Launcher/Themes/BlurWhite.xaml
index 25cbfe9c910..43cd8f4b53f 100644
--- a/Flow.Launcher/Themes/BlurWhite.xaml
+++ b/Flow.Launcher/Themes/BlurWhite.xaml
@@ -15,7 +15,7 @@
#BFFAFAFA
#BFFAFAFA
0 0 0 8
-
+
-
+
@@ -169,7 +169,7 @@
x:Key="ClockPanel"
BasedOn="{StaticResource ClockPanel}"
TargetType="{x:Type StackPanel}">
-
+
-
+
@@ -149,7 +149,7 @@
x:Key="ClockPanel"
BasedOn="{StaticResource ClockPanel}"
TargetType="{x:Type StackPanel}">
-
+
-
+