fix: fix invisible issue when Dot=True & fix some style issues in Badge.
This commit is contained in:
@@ -3,7 +3,27 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:converters="clr-namespace:Ursa.Converters;assembly=Ursa"
|
xmlns:converters="clr-namespace:Ursa.Converters;assembly=Ursa"
|
||||||
xmlns:u="https://irihi.tech/ursa">
|
xmlns:u="https://irihi.tech/ursa">
|
||||||
<!-- Add Resources Here -->
|
<Design.PreviewWith>
|
||||||
|
<StackPanel Orientation="Horizontal" Margin="20" Width="300" Spacing="10">
|
||||||
|
<u:Badge Header="5">
|
||||||
|
<u:Avatar Classes="Square Blue" Content="BM" />
|
||||||
|
</u:Badge>
|
||||||
|
<u:Badge Dot="True">
|
||||||
|
<u:Avatar Classes="Square Blue" Content="YL" />
|
||||||
|
</u:Badge>
|
||||||
|
<u:Badge>
|
||||||
|
<u:Badge.Header>
|
||||||
|
<PathIcon
|
||||||
|
Theme="{StaticResource InnerPathIcon}"
|
||||||
|
Data="{StaticResource SemiIconLock}" />
|
||||||
|
</u:Badge.Header>
|
||||||
|
<u:Avatar Classes="Square Blue" Content="YL" />
|
||||||
|
</u:Badge>
|
||||||
|
<u:Badge Header="NEW">
|
||||||
|
<u:Avatar Classes="Square LightBlue" Content="WF" />
|
||||||
|
</u:Badge>
|
||||||
|
</StackPanel>
|
||||||
|
</Design.PreviewWith>
|
||||||
|
|
||||||
<converters:BadgeContentOverflowConverter x:Key="BadgeContentConverter" />
|
<converters:BadgeContentOverflowConverter x:Key="BadgeContentConverter" />
|
||||||
|
|
||||||
@@ -94,7 +114,6 @@
|
|||||||
BorderBrush="{TemplateBinding BorderBrush}"
|
BorderBrush="{TemplateBinding BorderBrush}"
|
||||||
BorderThickness="{TemplateBinding BorderThickness}"
|
BorderThickness="{TemplateBinding BorderThickness}"
|
||||||
CornerRadius="{TemplateBinding CornerRadius}"
|
CornerRadius="{TemplateBinding CornerRadius}"
|
||||||
IsVisible="{Binding Header, RelativeSource={RelativeSource TemplatedParent}, Converter={x:Static ObjectConverters.IsNotNull}}"
|
|
||||||
RenderTransformOrigin=".5,.5" />
|
RenderTransformOrigin=".5,.5" />
|
||||||
</Grid>
|
</Grid>
|
||||||
</ControlTemplate>
|
</ControlTemplate>
|
||||||
@@ -138,6 +157,12 @@
|
|||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
<Style Selector="^.Light">
|
<Style Selector="^.Light">
|
||||||
|
<Style Selector="^/template/ ContentPresenter#PART_HeaderPresenter">
|
||||||
|
<Setter Property="Foreground" Value="{DynamicResource BadgeLightPrimaryBadgeForeground}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="^/template/ Border#PART_BadgeContainer">
|
||||||
|
<Setter Property="Background" Value="{DynamicResource BadgeLightPrimaryBadgeBackground}" />
|
||||||
|
</Style>
|
||||||
<Style Selector="^.Primary">
|
<Style Selector="^.Primary">
|
||||||
<Style Selector="^/template/ ContentPresenter#PART_HeaderPresenter">
|
<Style Selector="^/template/ ContentPresenter#PART_HeaderPresenter">
|
||||||
<Setter Property="Foreground" Value="{DynamicResource BadgeLightPrimaryBadgeForeground}" />
|
<Setter Property="Foreground" Value="{DynamicResource BadgeLightPrimaryBadgeForeground}" />
|
||||||
@@ -191,6 +216,7 @@
|
|||||||
<Style Selector="^/template/ Border#PART_BadgeContainer">
|
<Style Selector="^/template/ Border#PART_BadgeContainer">
|
||||||
<Setter Property="Background" Value="{DynamicResource BadgeInvertedBadgeBackground}" />
|
<Setter Property="Background" Value="{DynamicResource BadgeInvertedBadgeBackground}" />
|
||||||
</Style>
|
</Style>
|
||||||
|
<Setter Property="Foreground" Value="{DynamicResource BadgeInvertedPrimaryBadgeForeground}" />
|
||||||
<Style Selector="^.Primary /template/ ContentPresenter#PART_HeaderPresenter">
|
<Style Selector="^.Primary /template/ ContentPresenter#PART_HeaderPresenter">
|
||||||
<Setter Property="Foreground" Value="{DynamicResource BadgeInvertedPrimaryBadgeForeground}" />
|
<Setter Property="Foreground" Value="{DynamicResource BadgeInvertedPrimaryBadgeForeground}" />
|
||||||
</Style>
|
</Style>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<x:Double x:Key="BadgeMinHeight">18</x:Double>
|
<x:Double x:Key="BadgeMinHeight">18</x:Double>
|
||||||
<x:Double x:Key="BadgeDotWidth">8</x:Double>
|
<x:Double x:Key="BadgeDotWidth">8</x:Double>
|
||||||
<x:Double x:Key="BadgeDotHeight">8</x:Double>
|
<x:Double x:Key="BadgeDotHeight">8</x:Double>
|
||||||
<Thickness x:Key="BadgePadding">6,0</Thickness>
|
<Thickness x:Key="BadgePadding">4,0</Thickness>
|
||||||
<Thickness x:Key="BadgeBorderThickness">1</Thickness>
|
<Thickness x:Key="BadgeBorderThickness">1</Thickness>
|
||||||
<x:Double x:Key="BadgeFontSize">10</x:Double>
|
<x:Double x:Key="BadgeFontSize">10</x:Double>
|
||||||
<CornerRadius x:Key="BadgeCornerRadius">100</CornerRadius>
|
<CornerRadius x:Key="BadgeCornerRadius">100</CornerRadius>
|
||||||
|
|||||||
@@ -3,18 +3,19 @@ using Avalonia.Data.Converters;
|
|||||||
|
|
||||||
namespace Ursa.Converters;
|
namespace Ursa.Converters;
|
||||||
|
|
||||||
public class BadgeContentOverflowConverter: IMultiValueConverter
|
public class BadgeContentOverflowConverter : IMultiValueConverter
|
||||||
{
|
{
|
||||||
public object? Convert(IList<object?> values, Type targetType, object? parameter, CultureInfo culture)
|
public object? Convert(IList<object?> values, Type targetType, object? parameter, CultureInfo culture)
|
||||||
{
|
{
|
||||||
string overflowMark = parameter is string s ? s : "+";
|
var overflowMark = parameter as string ?? "+";
|
||||||
if (double.TryParse(values[0]?.ToString(), out var b) && values[1] is int i and > 0)
|
if (double.TryParse(values[0]?.ToString(), out var b) && values[1] is int count and > 0)
|
||||||
{
|
{
|
||||||
if (b > i)
|
if (b > count)
|
||||||
{
|
{
|
||||||
return i + overflowMark;
|
return $"{count}{overflowMark}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return values[0];
|
return values[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user