Merge pull request #465 from irihitech/issue-422
New Dialog/Drawer/MessageBox option: StyleClass
This commit is contained in:
@@ -1,69 +0,0 @@
|
||||
using System.Collections.Specialized;
|
||||
using Avalonia;
|
||||
using Avalonia.Collections;
|
||||
|
||||
namespace Ursa.Themes.Semi;
|
||||
|
||||
internal class ClassHelper : AvaloniaObject
|
||||
{
|
||||
public static readonly AttachedProperty<string> ClassesProperty =
|
||||
AvaloniaProperty.RegisterAttached<ClassHelper, StyledElement, string>("Classes");
|
||||
|
||||
public static readonly AttachedProperty<StyledElement> ClassSourceProperty =
|
||||
AvaloniaProperty.RegisterAttached<ClassHelper, StyledElement, StyledElement>("ClassSource");
|
||||
|
||||
static ClassHelper()
|
||||
{
|
||||
ClassesProperty.Changed.AddClassHandler<StyledElement>(OnClassesChanged);
|
||||
ClassSourceProperty.Changed.AddClassHandler<StyledElement>(OnClassSourceChanged);
|
||||
}
|
||||
|
||||
private static void OnClassSourceChanged(StyledElement arg1, AvaloniaPropertyChangedEventArgs arg2)
|
||||
{
|
||||
if (arg2.NewValue is StyledElement styledElement)
|
||||
{
|
||||
arg1.Classes.Clear();
|
||||
var nonPseudoClasses = styledElement.Classes.Where(c => !c.StartsWith(":"));
|
||||
arg1.Classes.AddRange(nonPseudoClasses);
|
||||
styledElement.Classes.WeakSubscribe((o, e) => OnSourceClassesChanged(o, e, arg1));
|
||||
}
|
||||
}
|
||||
|
||||
private static void OnSourceClassesChanged(object sender, NotifyCollectionChangedEventArgs e, StyledElement target)
|
||||
{
|
||||
if (sender is AvaloniaList<string> classes)
|
||||
{
|
||||
target.Classes.Clear();
|
||||
var nonPseudoClasses = classes.Where(c => !c.StartsWith(":"));
|
||||
target.Classes.AddRange(nonPseudoClasses);
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetClasses(AvaloniaObject obj, string value)
|
||||
{
|
||||
obj.SetValue(ClassesProperty, value);
|
||||
}
|
||||
|
||||
public static string GetClasses(AvaloniaObject obj)
|
||||
{
|
||||
return obj.GetValue(ClassesProperty);
|
||||
}
|
||||
|
||||
private static void OnClassesChanged(StyledElement sender, AvaloniaPropertyChangedEventArgs value)
|
||||
{
|
||||
var classes = value.GetNewValue<string?>();
|
||||
if (classes is null) return;
|
||||
sender.Classes.Clear();
|
||||
sender.Classes.Add(classes);
|
||||
}
|
||||
|
||||
public static void SetClassSource(StyledElement obj, StyledElement value)
|
||||
{
|
||||
obj.SetValue(ClassSourceProperty, value);
|
||||
}
|
||||
|
||||
public static StyledElement GetClassSource(StyledElement obj)
|
||||
{
|
||||
return obj.GetValue(ClassSourceProperty);
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:u="https://irihi.tech/ursa"
|
||||
xmlns:usemi="https://irihi.tech/ursa/themes/semi">
|
||||
xmlns:helpers="clr-namespace:Irihi.Avalonia.Shared.Helpers;assembly=Irihi.Avalonia.Shared">
|
||||
<!-- Add Resources Here -->
|
||||
<ControlTheme x:Key="{x:Type u:AutoCompleteBox}" TargetType="u:AutoCompleteBox">
|
||||
<Setter Property="VerticalAlignment" Value="Center" />
|
||||
@@ -15,7 +15,7 @@
|
||||
Name="PART_TextBox"
|
||||
MinHeight="{TemplateBinding MinHeight}"
|
||||
VerticalAlignment="Stretch"
|
||||
usemi:ClassHelper.ClassSource="{TemplateBinding}"
|
||||
helpers:ClassHelper.ClassSource="{TemplateBinding}"
|
||||
DataValidationErrors.Errors="{TemplateBinding (DataValidationErrors.Errors)}"
|
||||
InnerLeftContent="{TemplateBinding InnerLeftContent}"
|
||||
InnerRightContent="{TemplateBinding InnerRightContent}"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<ResourceDictionary
|
||||
xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:theme="clr-namespace:Ursa.Themes.Semi"
|
||||
xmlns:u="https://irihi.tech/ursa">
|
||||
xmlns:u="https://irihi.tech/ursa"
|
||||
xmlns:helpers="clr-namespace:Irihi.Avalonia.Shared.Helpers;assembly=Irihi.Avalonia.Shared">
|
||||
|
||||
<ControlTheme x:Key="{x:Type u:OverlayDialogHost}" TargetType="u:OverlayDialogHost">
|
||||
<Setter Property="OverlayMaskBrush" Value="{DynamicResource OverlayDialogMaskBrush}" />
|
||||
@@ -207,35 +207,24 @@
|
||||
DockPanel.Dock="Right"
|
||||
Theme="{DynamicResource OverlayCloseButton}" />
|
||||
</Grid>
|
||||
<StackPanel
|
||||
<Grid
|
||||
Grid.Row="2"
|
||||
Margin="24,0,24,24"
|
||||
HorizontalAlignment="Right"
|
||||
Orientation="Horizontal">
|
||||
ColumnDefinitions="Auto, Auto, Auto, Auto">
|
||||
<Button
|
||||
Name="{x:Static u:DefaultDialogControl.PART_CancelButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Tertiary"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_CANCEL}" />
|
||||
Margin="8,0,0,0" />
|
||||
<Button
|
||||
Name="{x:Static u:DefaultDialogControl.PART_NoButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Danger"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_NO}"
|
||||
Theme="{DynamicResource SolidButton}" />
|
||||
Margin="8,0,0,0"/>
|
||||
<Button
|
||||
Name="{x:Static u:DefaultDialogControl.PART_YesButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Primary"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_YES}"
|
||||
Theme="{DynamicResource SolidButton}" />
|
||||
Margin="8,0,0,0"/>
|
||||
<Button
|
||||
Name="{x:Static u:DefaultDialogControl.PART_OKButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Primary"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_OK}"
|
||||
Theme="{DynamicResource SolidButton}" />
|
||||
</StackPanel>
|
||||
Margin="8,0,0,0"/>
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
</Border>
|
||||
@@ -254,6 +243,29 @@
|
||||
<Setter Property="Margin" Value="0" />
|
||||
<Setter Property="Background" Value="{DynamicResource BorderCardBackground}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="Grid.Column" Value="0"/>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_CANCEL}"/>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="Grid.Column" Value="1"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_NO}"/>
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}"/>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="Grid.Column" Value="2"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_YES}"/>
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}"/>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="Grid.Column" Value="3"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_OK}"/>
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}"/>
|
||||
</Style>
|
||||
<Style Selector="^[Mode=None]">
|
||||
<Style Selector="^ /template/ PathIcon#PART_Icon">
|
||||
<Setter Property="IsVisible" Value="False" />
|
||||
@@ -262,16 +274,16 @@
|
||||
<Setter Property="Margin" Value="24 24 0 0" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Primary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Primary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary" />
|
||||
</Style>
|
||||
</Style>
|
||||
<Style Selector="^[Mode=Info]">
|
||||
@@ -281,16 +293,16 @@
|
||||
<Setter Property="Foreground" Value="{DynamicResource SemiBlue6}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Primary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Primary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary" />
|
||||
</Style>
|
||||
</Style>
|
||||
<Style Selector="^[Mode=Warning]">
|
||||
@@ -300,19 +312,19 @@
|
||||
<Setter Property="Foreground" Value="{DynamicResource SemiOrange6}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Warning" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Warning" />
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Warning" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Warning" />
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary" />
|
||||
</Style>
|
||||
</Style>
|
||||
<Style Selector="^[Mode=Error]">
|
||||
@@ -322,16 +334,16 @@
|
||||
<Setter Property="Foreground" Value="{DynamicResource SemiRed6}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary" />
|
||||
</Style>
|
||||
</Style>
|
||||
<Style Selector="^[Mode=Question]">
|
||||
@@ -341,16 +353,16 @@
|
||||
<Setter Property="Foreground" Value="{DynamicResource SemiBlue6}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Primary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Primary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary" />
|
||||
</Style>
|
||||
</Style>
|
||||
<Style Selector="^[Mode=Success]">
|
||||
@@ -360,16 +372,16 @@
|
||||
<Setter Property="Foreground" Value="{DynamicResource SemiGreen6}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Success" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Success" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Success" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Success" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary" />
|
||||
</Style>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Panel#PART_TitleArea">
|
||||
@@ -604,27 +616,16 @@
|
||||
Orientation="Horizontal">
|
||||
<Button
|
||||
Name="{x:Static u:DefaultDialogControl.PART_CancelButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Tertiary"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_CANCEL}" />
|
||||
Margin="8,0,0,0" />
|
||||
<Button
|
||||
Name="{x:Static u:DefaultDialogControl.PART_NoButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Danger"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_NO}"
|
||||
Theme="{DynamicResource SolidButton}" />
|
||||
Margin="8,0,0,0" />
|
||||
<Button
|
||||
Name="{x:Static u:DefaultDialogControl.PART_YesButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Primary"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_YES}"
|
||||
Theme="{DynamicResource SolidButton}" />
|
||||
Margin="8,0,0,0" />
|
||||
<Button
|
||||
Name="{x:Static u:DefaultDialogControl.PART_OKButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Primary"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_OK}"
|
||||
Theme="{DynamicResource SolidButton}" />
|
||||
Margin="8,0,0,0" />
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
@@ -633,6 +634,29 @@
|
||||
</Panel>
|
||||
</ControlTemplate>
|
||||
</Setter>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="Grid.Column" Value="0"/>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_CANCEL}"/>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="Grid.Column" Value="1"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_NO}"/>
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}"/>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="Grid.Column" Value="2"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_YES}"/>
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}"/>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="Grid.Column" Value="3"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_OK}"/>
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}"/>
|
||||
</Style>
|
||||
<Style Selector="^[Mode=None]">
|
||||
<Style Selector="^ /template/ PathIcon#PART_Icon">
|
||||
<Setter Property="IsVisible" Value="False" />
|
||||
@@ -641,16 +665,16 @@
|
||||
<Setter Property="Margin" Value="24 24 0 0" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Primary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Primary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary" />
|
||||
</Style>
|
||||
</Style>
|
||||
<Style Selector="^[Mode=Info]">
|
||||
@@ -660,16 +684,16 @@
|
||||
<Setter Property="Foreground" Value="{DynamicResource SemiBlue6}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Primary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Primary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary" />
|
||||
</Style>
|
||||
</Style>
|
||||
<Style Selector="^[Mode=Warning]">
|
||||
@@ -679,19 +703,19 @@
|
||||
<Setter Property="Foreground" Value="{DynamicResource SemiOrange6}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Warning" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Warning" />
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Warning" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Warning" />
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary" />
|
||||
</Style>
|
||||
</Style>
|
||||
<Style Selector="^[Mode=Error]">
|
||||
@@ -701,16 +725,16 @@
|
||||
<Setter Property="Foreground" Value="{DynamicResource SemiRed6}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary" />
|
||||
</Style>
|
||||
</Style>
|
||||
<Style Selector="^[Mode=Question]">
|
||||
@@ -720,16 +744,16 @@
|
||||
<Setter Property="Foreground" Value="{DynamicResource SemiBlue6}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Primary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Primary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary" />
|
||||
</Style>
|
||||
</Style>
|
||||
<Style Selector="^[Mode=Success]">
|
||||
@@ -739,16 +763,16 @@
|
||||
<Setter Property="Foreground" Value="{DynamicResource SemiGreen6}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Success" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Success" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Success" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Success" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Danger" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Tertiary" />
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary" />
|
||||
</Style>
|
||||
</Style>
|
||||
</ControlTheme>
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:c="clr-namespace:Ursa.Themes.Semi.Converters"
|
||||
xmlns:u="https://irihi.tech/ursa">
|
||||
xmlns:u="https://irihi.tech/ursa"
|
||||
xmlns:helpers="clr-namespace:Irihi.Avalonia.Shared.Helpers;assembly=Irihi.Avalonia.Shared">
|
||||
<ControlTheme x:Key="{x:Type u:CustomDrawerControl}" TargetType="u:CustomDrawerControl">
|
||||
<Setter Property="VerticalAlignment" Value="Stretch" />
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch" />
|
||||
@@ -157,27 +158,16 @@
|
||||
Orientation="Horizontal">
|
||||
<Button
|
||||
Name="{x:Static u:DefaultDialogControl.PART_CancelButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Tertiary"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_CANCEL}" />
|
||||
Margin="8,0,0,0" />
|
||||
<Button
|
||||
Name="{x:Static u:DefaultDialogControl.PART_NoButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Danger"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_NO}"
|
||||
Theme="{DynamicResource SolidButton}" />
|
||||
Margin="8,0,0,0" />
|
||||
<Button
|
||||
Name="{x:Static u:DefaultDialogControl.PART_YesButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Primary"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_YES}"
|
||||
Theme="{DynamicResource SolidButton}" />
|
||||
Margin="8,0,0,0" />
|
||||
<Button
|
||||
Name="{x:Static u:DefaultDialogControl.PART_OKButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Primary"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_OK}"
|
||||
Theme="{DynamicResource SolidButton}" />
|
||||
Margin="8,0,0,0" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
@@ -186,6 +176,29 @@
|
||||
</Panel>
|
||||
</ControlTemplate>
|
||||
</Setter>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="Grid.Column" Value="0"/>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_CANCEL}"/>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="Grid.Column" Value="1"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_NO}"/>
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}"/>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="Grid.Column" Value="2"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_YES}"/>
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}"/>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="Grid.Column" Value="3"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_OK}"/>
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}"/>
|
||||
</Style>
|
||||
<Style Selector="^[Position=Right] /template/ Border#PART_Root">
|
||||
<Setter Property="Margin" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Padding, Converter={x:Static c:ThicknessTakeConverter.Left}}" />
|
||||
<Setter Property="CornerRadius" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=CornerRadius, Converter={x:Static c:CornerRadiusTakeConverter.Left}}" />
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:u="https://irihi.tech/ursa"
|
||||
xmlns:u-semi="https://irihi.tech/ursa/themes/semi">
|
||||
xmlns:helpers="clr-namespace:Irihi.Avalonia.Shared.Helpers;assembly=Irihi.Avalonia.Shared">
|
||||
<!-- Add Resources Here -->
|
||||
<ControlTheme x:Key="{x:Type u:EnumSelector}" TargetType="u:EnumSelector">
|
||||
<Setter Property="HorizontalAlignment" Value="Left" />
|
||||
@@ -10,7 +10,7 @@
|
||||
<ControlTemplate TargetType="u:EnumSelector">
|
||||
<ComboBox
|
||||
Width="{TemplateBinding Width}"
|
||||
u-semi:ClassHelper.ClassSource="{TemplateBinding}"
|
||||
helpers:ClassHelper.ClassSource="{TemplateBinding}"
|
||||
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
|
||||
VerticalAlignment="{TemplateBinding VerticalAlignment}"
|
||||
Name="PART_ComboBox"
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<ResourceDictionary
|
||||
xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:u="https://irihi.tech/ursa">
|
||||
xmlns:u="https://irihi.tech/ursa"
|
||||
xmlns:helpers="clr-namespace:Irihi.Avalonia.Shared.Helpers;assembly=Irihi.Avalonia.Shared">
|
||||
<!-- Add Resources Here -->
|
||||
<ControlTheme x:Key="{x:Type u:MessageBoxWindow}" TargetType="u:MessageBoxWindow">
|
||||
<Setter Property="Title" Value="{x:Null}" />
|
||||
@@ -90,33 +91,45 @@
|
||||
Orientation="Horizontal">
|
||||
<Button
|
||||
Name="{x:Static u:MessageBoxWindow.PART_CancelButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Tertiary"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_CANCEL}" />
|
||||
Margin="8,0,0,0" />
|
||||
<Button
|
||||
Name="{x:Static u:MessageBoxWindow.PART_NoButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Danger"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_NO}"
|
||||
Theme="{DynamicResource SolidButton}" />
|
||||
Margin="8,0,0,0" />
|
||||
<Button
|
||||
Name="{x:Static u:MessageBoxWindow.PART_YesButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Primary"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_YES}"
|
||||
Theme="{DynamicResource SolidButton}" />
|
||||
Margin="8,0,0,0" />
|
||||
<Button
|
||||
Name="{x:Static u:MessageBoxWindow.PART_OKButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Primary"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_OK}"
|
||||
Theme="{DynamicResource SolidButton}" />
|
||||
Margin="8,0,0,0" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</VisualLayerManager>
|
||||
</Panel>
|
||||
</ControlTemplate>
|
||||
</Setter>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="Grid.Column" Value="0"/>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_CANCEL}"/>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="Grid.Column" Value="1"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_NO}"/>
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}"/>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="Grid.Column" Value="2"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_YES}"/>
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}"/>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="Grid.Column" Value="3"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_OK}"/>
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}"/>
|
||||
</Style>
|
||||
<Style Selector="^[MessageIcon=None] /template/ PathIcon#PART_Icon">
|
||||
<Setter Property="IsVisible" Value="False" />
|
||||
</Style>
|
||||
@@ -224,27 +237,16 @@
|
||||
Orientation="Horizontal">
|
||||
<Button
|
||||
Name="{x:Static u:MessageBoxControl.PART_CancelButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Tertiary"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_CANCEL}" />
|
||||
Margin="8,0,0,0" />
|
||||
<Button
|
||||
Name="{x:Static u:MessageBoxControl.PART_NoButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Danger"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_NO}"
|
||||
Theme="{DynamicResource SolidButton}" />
|
||||
Margin="8,0,0,0" />
|
||||
<Button
|
||||
Name="{x:Static u:MessageBoxControl.PART_YesButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Primary"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_YES}"
|
||||
Theme="{DynamicResource SolidButton}" />
|
||||
Margin="8,0,0,0" />
|
||||
<Button
|
||||
Name="{x:Static u:MessageBoxControl.PART_OKButton}"
|
||||
Margin="8,0,0,0"
|
||||
Classes="Primary"
|
||||
Content="{DynamicResource STRING_MENU_DIALOG_OK}"
|
||||
Theme="{DynamicResource SolidButton}" />
|
||||
Margin="8,0,0,0" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
@@ -265,6 +267,29 @@
|
||||
</MenuFlyout>
|
||||
</Setter>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_CancelButton">
|
||||
<Setter Property="Grid.Column" Value="0"/>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Tertiary"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_CANCEL}"/>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_NoButton">
|
||||
<Setter Property="Grid.Column" Value="1"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Danger"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_NO}"/>
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}"/>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_YesButton">
|
||||
<Setter Property="Grid.Column" Value="2"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_YES}"/>
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}"/>
|
||||
</Style>
|
||||
<Style Selector="^ /template/ Button#PART_OKButton">
|
||||
<Setter Property="Grid.Column" Value="3"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Primary"/>
|
||||
<Setter Property="Content" Value="{DynamicResource STRING_MENU_DIALOG_OK}"/>
|
||||
<Setter Property="Theme" Value="{DynamicResource SolidButton}"/>
|
||||
</Style>
|
||||
<Style Selector="^[MessageIcon=None] /template/ PathIcon#PART_Icon">
|
||||
<Setter Property="IsVisible" Value="False" />
|
||||
</Style>
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<Styles xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:u="https://irihi.tech/ursa"
|
||||
xmlns:theme="https://irihi.tech/ursa/themes/semi">
|
||||
xmlns:theme="https://irihi.tech/ursa/themes/semi"
|
||||
xmlns:helpers="clr-namespace:Irihi.Avalonia.Shared.Helpers;assembly=Irihi.Avalonia.Shared">
|
||||
<Design.PreviewWith>
|
||||
<Border Padding="20">
|
||||
<!-- Add Controls for Previewer Here -->
|
||||
@@ -16,7 +17,7 @@
|
||||
</Style>
|
||||
<Style Selector="u|PinCode.Small">
|
||||
<Style Selector="^ u|PinCodeItem">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Small"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Small"></Setter>
|
||||
<Style Selector="^:nth-last-child(n+2)">
|
||||
<Setter Property="Margin" Value="0 0 6 0"></Setter>
|
||||
</Style>
|
||||
@@ -24,7 +25,7 @@
|
||||
</Style>
|
||||
<Style Selector="u|PinCode.Large">
|
||||
<Style Selector="^ u|PinCodeItem">
|
||||
<Setter Property="theme:ClassHelper.Classes" Value="Large"></Setter>
|
||||
<Setter Property="helpers:ClassHelper.Classes" Value="Large"></Setter>
|
||||
<Style Selector="^:nth-last-child(n+2)">
|
||||
<Setter Property="Margin" Value="0 0 12 0"></Setter>
|
||||
</Style>
|
||||
|
||||
@@ -214,6 +214,11 @@ public static class Dialog
|
||||
else
|
||||
window.WindowStartupLocation = WindowStartupLocation.CenterOwner;
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(options.StyleClass))
|
||||
{
|
||||
var styles = options.StyleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
|
||||
window.Classes.AddRange(styles);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -240,5 +245,10 @@ public static class Dialog
|
||||
else
|
||||
window.WindowStartupLocation = WindowStartupLocation.CenterOwner;
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(options.StyleClass))
|
||||
{
|
||||
var styles = options.StyleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
|
||||
window.Classes.AddRange(styles);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,4 +32,5 @@ public class DialogOptions
|
||||
public bool CanDragMove { get; set; } = true;
|
||||
|
||||
public bool CanResize { get; set; }
|
||||
public string? StyleClass { get; set; }
|
||||
}
|
||||
@@ -64,4 +64,6 @@ public class OverlayDialogOptions
|
||||
public int? TopLevelHashCode { get; set; }
|
||||
|
||||
public bool CanResize { get; set; }
|
||||
|
||||
public string? StyleClass { get; set; }
|
||||
}
|
||||
@@ -205,6 +205,11 @@ public static class OverlayDialog
|
||||
control.IsCloseButtonVisible = options.IsCloseButtonVisible;
|
||||
control.CanLightDismiss = options.CanLightDismiss;
|
||||
control.CanResize = options.CanResize;
|
||||
if (!string.IsNullOrWhiteSpace(options.StyleClass))
|
||||
{
|
||||
var styles = options.StyleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
|
||||
control.Classes.AddRange(styles);
|
||||
}
|
||||
DialogControlBase.SetCanDragMove(control, options.CanDragMove);
|
||||
}
|
||||
|
||||
@@ -231,6 +236,11 @@ public static class OverlayDialog
|
||||
control.CanLightDismiss = options.CanLightDismiss;
|
||||
control.IsCloseButtonVisible = options.IsCloseButtonVisible;
|
||||
control.CanResize = options.CanResize;
|
||||
if (!string.IsNullOrWhiteSpace(options.StyleClass))
|
||||
{
|
||||
var styles = options.StyleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
|
||||
control.Classes.AddRange(styles);
|
||||
}
|
||||
DialogControlBase.SetCanDragMove(control, options.CanDragMove);
|
||||
}
|
||||
|
||||
|
||||
@@ -217,6 +217,12 @@ public static class Drawer
|
||||
if(options.MinHeight is not null) drawer.MinHeight = options.MinHeight.Value;
|
||||
if(options.MaxHeight is not null) drawer.MaxHeight = options.MaxHeight.Value;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(options.StyleClass))
|
||||
{
|
||||
var styles = options.StyleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
|
||||
drawer.Classes.AddRange(styles);
|
||||
}
|
||||
}
|
||||
|
||||
private static void ConfigureDefaultDrawer(DefaultDrawerControl drawer, DrawerOptions? options)
|
||||
@@ -239,5 +245,10 @@ public static class Drawer
|
||||
if(options.MinHeight is not null) drawer.MinHeight = options.MinHeight.Value;
|
||||
if(options.MaxHeight is not null) drawer.MaxHeight = options.MaxHeight.Value;
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(options.StyleClass))
|
||||
{
|
||||
var styles = options.StyleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
|
||||
drawer.Classes.AddRange(styles);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -22,4 +22,6 @@ public class DrawerOptions
|
||||
public int? TopLevelHashCode { get; set; }
|
||||
|
||||
public bool CanResize { get; set; }
|
||||
|
||||
public string? StyleClass { get; set; }
|
||||
}
|
||||
@@ -11,7 +11,8 @@ public static class MessageBox
|
||||
string message,
|
||||
string? title = null,
|
||||
MessageBoxIcon icon = MessageBoxIcon.None,
|
||||
MessageBoxButton button = MessageBoxButton.OK)
|
||||
MessageBoxButton button = MessageBoxButton.OK,
|
||||
string? styleClass = null)
|
||||
{
|
||||
var messageWindow = new MessageBoxWindow(button)
|
||||
{
|
||||
@@ -19,6 +20,11 @@ public static class MessageBox
|
||||
Title = title,
|
||||
MessageIcon = icon
|
||||
};
|
||||
if (!string.IsNullOrWhiteSpace(styleClass))
|
||||
{
|
||||
var styles = styleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
|
||||
messageWindow.Classes.AddRange(styles);
|
||||
}
|
||||
var lifetime = Application.Current?.ApplicationLifetime;
|
||||
if (lifetime is not IClassicDesktopStyleApplicationLifetime classLifetime) return MessageBoxResult.None;
|
||||
var main = classLifetime.MainWindow;
|
||||
@@ -37,7 +43,8 @@ public static class MessageBox
|
||||
string message,
|
||||
string title,
|
||||
MessageBoxIcon icon = MessageBoxIcon.None,
|
||||
MessageBoxButton button = MessageBoxButton.OK)
|
||||
MessageBoxButton button = MessageBoxButton.OK,
|
||||
string? styleClass = null)
|
||||
{
|
||||
var messageWindow = new MessageBoxWindow(button)
|
||||
{
|
||||
@@ -45,6 +52,11 @@ public static class MessageBox
|
||||
Title = title,
|
||||
MessageIcon = icon
|
||||
};
|
||||
if (!string.IsNullOrWhiteSpace(styleClass))
|
||||
{
|
||||
var styles = styleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
|
||||
messageWindow.Classes.AddRange(styles!);
|
||||
}
|
||||
var result = await messageWindow.ShowDialog<MessageBoxResult>(owner);
|
||||
return result;
|
||||
}
|
||||
@@ -55,7 +67,8 @@ public static class MessageBox
|
||||
string? hostId = null,
|
||||
MessageBoxIcon icon = MessageBoxIcon.None,
|
||||
MessageBoxButton button = MessageBoxButton.OK,
|
||||
int? toplevelHashCode = null)
|
||||
int? toplevelHashCode = null,
|
||||
string? styleClass = null)
|
||||
{
|
||||
var host = OverlayDialogManager.GetHost(hostId, toplevelHashCode);
|
||||
if (host is null) return MessageBoxResult.None;
|
||||
@@ -67,6 +80,11 @@ public static class MessageBox
|
||||
MessageIcon = icon,
|
||||
[KeyboardNavigation.TabNavigationProperty] = KeyboardNavigationMode.Cycle
|
||||
};
|
||||
if (!string.IsNullOrWhiteSpace(styleClass))
|
||||
{
|
||||
var styles = styleClass!.Split([' '], StringSplitOptions.RemoveEmptyEntries);
|
||||
messageControl.Classes.AddRange(styles!);
|
||||
}
|
||||
host.AddModalDialog(messageControl);
|
||||
var result = await messageControl.ShowAsync<MessageBoxResult>();
|
||||
return result;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Concurrent;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace Ursa.Controls;
|
||||
|
||||
@@ -10,6 +11,7 @@ internal static class OverlayDialogManager
|
||||
|
||||
public static void RegisterHost(OverlayDialogHost host, string? id, int? hash)
|
||||
{
|
||||
Debug.WriteLine("Count: "+Hosts.Count);
|
||||
Hosts.TryAdd(new HostKey(id, hash), host);
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="$(AvaloniaVersion)"/>
|
||||
<PackageReference Include="Irihi.Avalonia.Shared" Version="0.1.9" />
|
||||
<PackageReference Include="Irihi.Avalonia.Shared" Version="0.2.1" />
|
||||
<PackageReference Include="Irihi.Avalonia.Shared.Contracts" Version="0.2.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Reference in New Issue
Block a user