Merge pull request #300 from irihitech/trim

Fix several trimming issue
This commit is contained in:
Dong Bin
2024-07-22 16:26:33 +08:00
committed by GitHub
32 changed files with 102 additions and 60 deletions

View File

@@ -5,7 +5,9 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<!--
<TrimmerRootDescriptor Include="Roots.xml"/> <TrimmerRootDescriptor Include="Roots.xml"/>
-->
<AvaloniaResource Include="Assets\**"/> <AvaloniaResource Include="Assets\**"/>
</ItemGroup> </ItemGroup>

View File

@@ -6,12 +6,16 @@
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<BuiltInComInteropSupport>true</BuiltInComInteropSupport> <BuiltInComInteropSupport>true</BuiltInComInteropSupport>
<AvaloniaUseCompiledBindingsByDefault>false</AvaloniaUseCompiledBindingsByDefault> <AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest> <ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<TrimmerRootAssembly Include="Ursa.Demo" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Avalonia.Desktop" Version="$(AvaloniaVersion)"/> <PackageReference Include="Avalonia.Desktop" Version="$(AvaloniaVersion)"/>

View File

@@ -4,6 +4,8 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:u="https://irihi.tech/ursa" xmlns:u="https://irihi.tech/ursa"
xmlns:vm="clr-namespace:Ursa.Demo.ViewModels" xmlns:vm="clr-namespace:Ursa.Demo.ViewModels"
x:CompileBindings="True"
x:DataType="vm:AvatarDemoViewModel"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Ursa.Demo.Pages.AvatarDemo"> x:Class="Ursa.Demo.Pages.AvatarDemo">
<Design.DataContext> <Design.DataContext>

View File

@@ -6,6 +6,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:pages="clr-namespace:Ursa.Demo.Pages" xmlns:pages="clr-namespace:Ursa.Demo.Pages"
xmlns:u="https://irihi.tech/ursa" xmlns:u="https://irihi.tech/ursa"
x:DataType="pages:BannerDemoViewModel"
mc:Ignorable="d"> mc:Ignorable="d">
<Design.DataContext> <Design.DataContext>
<pages:BannerDemoViewModel /> <pages:BannerDemoViewModel />

View File

@@ -7,6 +7,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:u="https://irihi.tech/ursa" xmlns:u="https://irihi.tech/ursa"
xmlns:vm="using:Ursa.Demo.ViewModels" xmlns:vm="using:Ursa.Demo.ViewModels"
x:DataType="vm:IntroductionDemoViewModel"
d:DesignHeight="800" d:DesignHeight="800"
d:DesignWidth="1600" d:DesignWidth="1600"
mc:Ignorable="d"> mc:Ignorable="d">

View File

@@ -8,6 +8,7 @@
xmlns:viewModels="clr-namespace:Ursa.Demo.ViewModels" xmlns:viewModels="clr-namespace:Ursa.Demo.ViewModels"
d:DesignHeight="450" d:DesignHeight="450"
d:DesignWidth="800" d:DesignWidth="800"
x:DataType="viewModels:PaginationDemoViewModel"
mc:Ignorable="d"> mc:Ignorable="d">
<Design.DataContext> <Design.DataContext>
<viewModels:PaginationDemoViewModel /> <viewModels:PaginationDemoViewModel />

View File

@@ -9,7 +9,7 @@
xmlns:viewModels="clr-namespace:Ursa.Demo.ViewModels" xmlns:viewModels="clr-namespace:Ursa.Demo.ViewModels"
d:DesignHeight="450" d:DesignHeight="450"
d:DesignWidth="800" d:DesignWidth="800"
x:CompileBindings="True" x:CompileBindings="False"
x:DataType="viewModels:TimelineDemoViewModel" x:DataType="viewModels:TimelineDemoViewModel"
mc:Ignorable="d"> mc:Ignorable="d">
<UserControl.Resources> <UserControl.Resources>
@@ -27,33 +27,33 @@
<u:Timeline <u:Timeline
Mode="Alternate" Mode="Alternate"
HorizontalAlignment="Left" HorizontalAlignment="Left"
ContentMemberBinding="{ReflectionBinding Description}" ContentMemberBinding="{Binding Description}"
HeaderMemberBinding="{ReflectionBinding Header}" HeaderMemberBinding="{Binding Header}"
IconMemberBinding="{ReflectionBinding ItemType}" IconMemberBinding="{Binding ItemType}"
IconTemplate="{StaticResource IconSelector}" IconTemplate="{StaticResource IconSelector}"
ItemsSource="{Binding Items}" ItemsSource="{Binding Items}"
TimeMemberBinding="{ReflectionBinding Time}" > TimeMemberBinding="{Binding Time}" >
</u:Timeline> </u:Timeline>
<u:Timeline <u:Timeline
Mode="Left" Mode="Left"
HorizontalAlignment="Left" HorizontalAlignment="Left"
ContentMemberBinding="{ReflectionBinding Description}" ContentMemberBinding="{Binding Description}"
HeaderMemberBinding="{ReflectionBinding Header}" HeaderMemberBinding="{Binding Header}"
IconMemberBinding="{ReflectionBinding ItemType}" IconMemberBinding="{Binding ItemType}"
IconTemplate="{StaticResource IconSelector}" IconTemplate="{StaticResource IconSelector}"
ItemsSource="{Binding Items}" ItemsSource="{Binding Items}"
TimeMemberBinding="{ReflectionBinding Time}" > TimeMemberBinding="{Binding Time}" >
</u:Timeline> </u:Timeline>
<u:Timeline <u:Timeline
Mode="Right" Mode="Right"
HorizontalAlignment="Left" HorizontalAlignment="Left"
ContentMemberBinding="{ReflectionBinding Description}" ContentMemberBinding="{Binding Description}"
HeaderMemberBinding="{ReflectionBinding Header}" HeaderMemberBinding="{Binding Header}"
IconMemberBinding="{ReflectionBinding ItemType}" IconMemberBinding="{Binding ItemType}"
IconTemplate="{StaticResource IconSelector}" IconTemplate="{StaticResource IconSelector}"
ItemsSource="{Binding Items}" ItemsSource="{Binding Items}"
TimeMemberBinding="{ReflectionBinding Time}" > TimeMemberBinding="{Binding Time}" >
</u:Timeline> </u:Timeline>
<u:Timeline HorizontalAlignment="Left" Mode="Alternate"> <u:Timeline HorizontalAlignment="Left" Mode="Alternate">
<u:TimelineItem <u:TimelineItem

View File

@@ -1,5 +1,4 @@
<linker> <linker>
<!-- Can be removed if CompiledBinding and no reflection are used --> <!-- Can be removed if CompiledBinding and no reflection are used -->
<assembly fullname="Ursa.Demo" preserve="All" /> <assembly fullname="Ursa.Demo" preserve="All" />
<assembly fullname="Avalonia.Themes.Fluent" preserve="All" />
</linker> </linker>

View File

@@ -3,7 +3,7 @@
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<AvaloniaUseCompiledBindingsByDefault>false</AvaloniaUseCompiledBindingsByDefault> <AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@@ -19,7 +19,7 @@
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.--> <!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="$(AvaloniaVersion)" /> <PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="$(AvaloniaVersion)" />
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.0" /> <PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.0" />
<PackageReference Include="Semi.Avalonia" Version="11.1.0-rc2" /> <PackageReference Include="Semi.Avalonia" Version="11.1.0-rc2.1" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -16,7 +16,7 @@
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.--> <!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="$(AvaloniaVersion)"/> <PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="$(AvaloniaVersion)"/>
<PackageReference Include="Prism.DryIoc.Avalonia" Version="8.1.97.11072" /> <PackageReference Include="Prism.DryIoc.Avalonia" Version="8.1.97.11072" />
<PackageReference Include="Semi.Avalonia" Version="11.1.0-rc2" /> <PackageReference Include="Semi.Avalonia" Version="11.1.0-rc2.1" />
</ItemGroup> </ItemGroup>

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<Version>0.3.0-beta20240226</Version> <Version>0.3.0-beta20240226</Version>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Authors>IRIHI Technology Co., Ltd.</Authors> <Authors>IRIHI Technology Co., Ltd.</Authors>

View File

@@ -2,7 +2,8 @@
xmlns="https://github.com/avaloniaui" xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:contracts="https://irihi.tech/shared" xmlns:contracts="https://irihi.tech/shared"
xmlns:u="https://irihi.tech/ursa"> xmlns:u="https://irihi.tech/ursa"
x:CompileBindings="True">
<!-- Add Resources Here --> <!-- Add Resources Here -->
<ControlTheme x:Key="{x:Type u:DateRangePicker}" TargetType="u:DateRangePicker"> <ControlTheme x:Key="{x:Type u:DateRangePicker}" TargetType="u:DateRangePicker">
<Setter Property="Background" Value="{DynamicResource TextBoxDefaultBackground}" /> <Setter Property="Background" Value="{DynamicResource TextBoxDefaultBackground}" />
@@ -59,7 +60,7 @@
Name="ClearButton" Name="ClearButton"
Grid.Column="3" Grid.Column="3"
Padding="8,0" Padding="8,0"
Command="{Binding $parent[contracts:IClearControl].Clear}" Command="{Binding $parent[u:DateRangePicker].Clear}"
Content="{DynamicResource IconButtonClearData}" Content="{DynamicResource IconButtonClearData}"
Focusable="False" Focusable="False"
IsVisible="False" IsVisible="False"
@@ -68,9 +69,9 @@
Name="{x:Static u:DateRangePicker.PART_Button}" Name="{x:Static u:DateRangePicker.PART_Button}"
Grid.Column="3" Grid.Column="3"
Padding="8,0" Padding="8,0"
IsVisible="{Binding !#ClearButton.IsVisible}"
Content="{DynamicResource CalendarDatePickerIconGlyph}" Content="{DynamicResource CalendarDatePickerIconGlyph}"
Focusable="False" Focusable="False"
IsVisible="{Binding !#ClearButton.IsVisible}"
Theme="{DynamicResource InnerIconButton}" /> Theme="{DynamicResource InnerIconButton}" />
</Grid> </Grid>
<Popup <Popup
@@ -120,18 +121,18 @@
Grid.Column="0" Grid.Column="0"
Margin="8" Margin="8"
BorderThickness="0" BorderThickness="0"
FontSize="{DynamicResource DefaultFontSize}"
CornerRadius="{Binding $parent[Border].CornerRadius}" CornerRadius="{Binding $parent[Border].CornerRadius}"
FirstDayOfWeek="{TemplateBinding FirstDayOfWeek}" FirstDayOfWeek="{TemplateBinding FirstDayOfWeek}"
FontSize="{DynamicResource DefaultFontSize}"
IsTodayHighlighted="{TemplateBinding IsTodayHighlighted}" /> IsTodayHighlighted="{TemplateBinding IsTodayHighlighted}" />
<u:CalendarView <u:CalendarView
Name="{x:Static u:DateRangePicker.PART_EndCalendar}" Name="{x:Static u:DateRangePicker.PART_EndCalendar}"
Grid.Column="1" Grid.Column="1"
Margin="8" Margin="8"
BorderThickness="0" BorderThickness="0"
FontSize="{DynamicResource DefaultFontSize}"
CornerRadius="{Binding $parent[Border].CornerRadius}" CornerRadius="{Binding $parent[Border].CornerRadius}"
FirstDayOfWeek="{TemplateBinding FirstDayOfWeek}" FirstDayOfWeek="{TemplateBinding FirstDayOfWeek}"
FontSize="{DynamicResource DefaultFontSize}"
IsTodayHighlighted="{TemplateBinding IsTodayHighlighted}" /> IsTodayHighlighted="{TemplateBinding IsTodayHighlighted}" />
</Grid> </Grid>
</DockPanel> </DockPanel>
@@ -144,7 +145,7 @@
<Style Selector="^.clearButton, ^.ClearButton"> <Style Selector="^.clearButton, ^.ClearButton">
<Style Selector="^:not(:empty):pointerover /template/ Button#ClearButton"> <Style Selector="^:not(:empty):pointerover /template/ Button#ClearButton">
<Setter Property="IsVisible" Value="{Binding $parent[u:DatePicker].start, Converter={x:Static ObjectConverters.IsNotNull}}" /> <Setter Property="IsVisible" Value="True" />
</Style> </Style>
</Style> </Style>

View File

@@ -30,7 +30,6 @@
<Setter Property="TextElement.FontFamily" Value="{TemplateBinding FontFamily}" /> <Setter Property="TextElement.FontFamily" Value="{TemplateBinding FontFamily}" />
<Setter Property="TextElement.FontWeight" Value="{TemplateBinding FontWeight}" /> <Setter Property="TextElement.FontWeight" Value="{TemplateBinding FontWeight}" />
<Setter Property="TextElement.FontSize" Value="{TemplateBinding FontSize}" /> <Setter Property="TextElement.FontSize" Value="{TemplateBinding FontSize}" />
<Setter Property="ContentPresenter.IsVisible" Value="{Binding Content, RelativeSource={RelativeSource TemplatedParent}, Converter={x:Static ObjectConverters.IsNotNull}}" />
<Setter Property="ContentPresenter.Margin" Value="{DynamicResource ThicknessDividerTextMargin}" /> <Setter Property="ContentPresenter.Margin" Value="{DynamicResource ThicknessDividerTextMargin}" />
<Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="VerticalAlignment" Value="Center" />
</ControlTheme> </ControlTheme>
@@ -48,7 +47,10 @@
Height="{TemplateBinding Height}" Height="{TemplateBinding Height}"
ColumnDefinitions="Auto,Auto,*"> ColumnDefinitions="Auto,Auto,*">
<Rectangle Theme="{StaticResource DividerLeftLine}" /> <Rectangle Theme="{StaticResource DividerLeftLine}" />
<ContentPresenter Grid.Column="1" Theme="{StaticResource DividerContentPresenter}" /> <ContentPresenter
Grid.Column="1"
IsVisible="{Binding Content, RelativeSource={RelativeSource TemplatedParent}, Converter={x:Static ObjectConverters.IsNotNull}}"
Theme="{StaticResource DividerContentPresenter}" />
<Rectangle Grid.Column="2" Theme="{StaticResource DividerRightLine}" /> <Rectangle Grid.Column="2" Theme="{StaticResource DividerRightLine}" />
</Grid> </Grid>
</ControlTemplate> </ControlTemplate>
@@ -62,7 +64,10 @@
Height="{TemplateBinding Height}" Height="{TemplateBinding Height}"
ColumnDefinitions="*,Auto,Auto"> ColumnDefinitions="*,Auto,Auto">
<Rectangle Theme="{StaticResource DividerLeftLine}" /> <Rectangle Theme="{StaticResource DividerLeftLine}" />
<ContentPresenter Grid.Column="1" Theme="{StaticResource DividerContentPresenter}" /> <ContentPresenter
Grid.Column="1"
IsVisible="{Binding Content, RelativeSource={RelativeSource TemplatedParent}, Converter={x:Static ObjectConverters.IsNotNull}}"
Theme="{StaticResource DividerContentPresenter}" />
<Rectangle Grid.Column="2" Theme="{StaticResource DividerRightLine}" /> <Rectangle Grid.Column="2" Theme="{StaticResource DividerRightLine}" />
</Grid> </Grid>
</ControlTemplate> </ControlTemplate>
@@ -76,7 +81,10 @@
Height="{TemplateBinding Height}" Height="{TemplateBinding Height}"
ColumnDefinitions="*,Auto,*"> ColumnDefinitions="*,Auto,*">
<Rectangle Theme="{StaticResource DividerLeftLine}" /> <Rectangle Theme="{StaticResource DividerLeftLine}" />
<ContentPresenter Grid.Column="1" Theme="{StaticResource DividerContentPresenter}" /> <ContentPresenter
Grid.Column="1"
IsVisible="{Binding Content, RelativeSource={RelativeSource TemplatedParent}, Converter={x:Static ObjectConverters.IsNotNull}}"
Theme="{StaticResource DividerContentPresenter}" />
<Rectangle Grid.Column="2" Theme="{StaticResource DividerRightLine}" /> <Rectangle Grid.Column="2" Theme="{StaticResource DividerRightLine}" />
</Grid> </Grid>
</ControlTemplate> </ControlTemplate>
@@ -90,7 +98,10 @@
Height="{TemplateBinding Height}" Height="{TemplateBinding Height}"
ColumnDefinitions="*,Auto,*"> ColumnDefinitions="*,Auto,*">
<Rectangle Theme="{StaticResource DividerLeftLine}" /> <Rectangle Theme="{StaticResource DividerLeftLine}" />
<ContentPresenter Grid.Column="1" Theme="{StaticResource DividerContentPresenter}" /> <ContentPresenter
Grid.Column="1"
IsVisible="{Binding Content, RelativeSource={RelativeSource TemplatedParent}, Converter={x:Static ObjectConverters.IsNotNull}}"
Theme="{StaticResource DividerContentPresenter}" />
<Rectangle Grid.Column="2" Theme="{StaticResource DividerRightLine}" /> <Rectangle Grid.Column="2" Theme="{StaticResource DividerRightLine}" />
</Grid> </Grid>
</ControlTemplate> </ControlTemplate>

View File

@@ -248,7 +248,7 @@
<Style Selector="^ /template/ Panel#PART_TitleArea"> <Style Selector="^ /template/ Panel#PART_TitleArea">
<Setter Property="ContextFlyout"> <Setter Property="ContextFlyout">
<MenuFlyout> <MenuFlyout>
<MenuItem Command="{Binding $parent[u:CustomDialogControl].CloseDialog}" Header="{DynamicResource STRING_MENU_DIALOG_CLOSE}"> <MenuItem Command="{Binding $parent[u:CustomDialogControl].Close}" Header="{DynamicResource STRING_MENU_DIALOG_CLOSE}">
<MenuItem.Icon> <MenuItem.Icon>
<PathIcon <PathIcon
Width="12" Width="12"

View File

@@ -25,8 +25,8 @@
</ControlTheme> </ControlTheme>
<ControlTheme x:Key="{x:Type u:NumericUpDown}" TargetType="{x:Type u:NumericUpDown}"> <ControlTheme x:Key="{x:Type u:NumericUpDown}" TargetType="{x:Type u:NumericUpDown}">
<Setter Property="NumericUpDown.VerticalContentAlignment" Value="Center" /> <Setter Property="CornerRadius" Value="{DynamicResource NumericUpDownCornerRadius}" />
<Setter Property="NumericUpDown.CornerRadius" Value="{DynamicResource NumericUpDownCornerRadius}" /> <Setter Property="MinHeight" Value="{DynamicResource NumericUpDownDefaultHeight}"></Setter>
<Setter Property="Template"> <Setter Property="Template">
<ControlTemplate TargetType="u:NumericUpDown"> <ControlTemplate TargetType="u:NumericUpDown">
<DataValidationErrors> <DataValidationErrors>
@@ -44,7 +44,7 @@
<TextBox <TextBox
Name="PART_TextBox" Name="PART_TextBox"
Height="{TemplateBinding Height}" Height="{TemplateBinding Height}"
MinHeight="{DynamicResource NumericUpDownWrapperDefaultHeight}" MinHeight="{TemplateBinding MinHeight}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
AcceptsReturn="False" AcceptsReturn="False"
CornerRadius="{TemplateBinding CornerRadius}" CornerRadius="{TemplateBinding CornerRadius}"

View File

@@ -18,7 +18,7 @@
RowDefinitions="Auto,Auto,Auto"> RowDefinitions="Auto,Auto,Auto">
<Grid.Styles> <Grid.Styles>
<Style Selector="TickBar"> <Style Selector="TickBar">
<Setter Property="ReservedSpace" Value="{Binding #PART_Track.LowerThumb.Bounds}" /> <Setter Property="ReservedSpace" Value="{ReflectionBinding #PART_Track.LowerThumb.Bounds}" />
</Style> </Style>
</Grid.Styles> </Grid.Styles>
<TickBar <TickBar
@@ -50,7 +50,7 @@
TickFrequency="{TemplateBinding u:RangeSlider.TickFrequency}" TickFrequency="{TemplateBinding u:RangeSlider.TickFrequency}"
Ticks="{TemplateBinding Ticks}" /> Ticks="{TemplateBinding Ticks}" />
<u:RangeTrack <u:RangeTrack
Name="{x:Static u:RangeSlider.PART_Track}" Name="PART_Track"
Grid.Row="1" Grid.Row="1"
Cursor="Hand" Cursor="Hand"
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"
@@ -110,7 +110,7 @@
ColumnDefinitions="Auto,Auto,Auto"> ColumnDefinitions="Auto,Auto,Auto">
<Grid.Styles> <Grid.Styles>
<Style Selector="TickBar"> <Style Selector="TickBar">
<Setter Property="ReservedSpace" Value="{Binding #PART_Track.LowerThumb.Bounds}" /> <Setter Property="ReservedSpace" Value="{ReflectionBinding #PART_Track.LowerThumb.Bounds}" />
</Style> </Style>
</Grid.Styles> </Grid.Styles>
<TickBar <TickBar
@@ -142,7 +142,7 @@
TickFrequency="{TemplateBinding u:RangeSlider.TickFrequency}" TickFrequency="{TemplateBinding u:RangeSlider.TickFrequency}"
Ticks="{TemplateBinding Ticks}" /> Ticks="{TemplateBinding Ticks}" />
<u:RangeTrack <u:RangeTrack
Name="{x:Static u:RangeSlider.PART_Track}" Name="PART_Track"
Cursor="Hand" Cursor="Hand"
Grid.Column="1" Grid.Column="1"
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"

View File

@@ -10,7 +10,7 @@
<Setter Property="VerticalAlignment" Value="Top" /> <Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="ItemTemplate"> <Setter Property="ItemTemplate">
<DataTemplate> <DataTemplate>
<u:ClosableTag Command="{Binding $parent[u:TagInput].Close}" Content="{Binding}" /> <u:ClosableTag Command="{Binding $parent[u:TagInput].Close}" Content="{ReflectionBinding}" />
</DataTemplate> </DataTemplate>
</Setter> </Setter>
<Setter Property="Template"> <Setter Property="Template">

View File

@@ -140,7 +140,7 @@
Name="ClearButton" Name="ClearButton"
Grid.Column="1" Grid.Column="1"
Padding="0,0,8,0" Padding="0,0,8,0"
Command="{Binding $parent[iri:IClearControl].Clear}" Command="{Binding $parent[u:TimePicker].Clear}"
Content="{DynamicResource IconButtonClearData}" Content="{DynamicResource IconButtonClearData}"
Focusable="False" Focusable="False"
IsVisible="False" IsVisible="False"

View File

@@ -59,7 +59,8 @@
Name="ClearButton" Name="ClearButton"
Grid.Column="3" Grid.Column="3"
Padding="8,0" Padding="8,0"
Command="{Binding $parent[iri:IClearControl].Clear}" Command="{Binding $parent[u:TimeRangePicker
].Clear}"
Content="{DynamicResource IconButtonClearData}" Content="{DynamicResource IconButtonClearData}"
Focusable="False" Focusable="False"
IsVisible="False" IsVisible="False"

View File

@@ -69,7 +69,7 @@
<Button <Button
Name="PART_ClearButton" Name="PART_ClearButton"
Grid.Column="2" Grid.Column="2"
Command="{Binding $parent[iri:IClearControl].Clear}" Command="{Binding $parent[u:TreeComboBox].Clear}"
IsVisible="False" IsVisible="False"
Theme="{DynamicResource InnerIconButton}" Theme="{DynamicResource InnerIconButton}"
Content="{DynamicResource IconButtonClearData}" /> Content="{DynamicResource IconButtonClearData}" />

View File

@@ -2,8 +2,8 @@
<Styles.Resources> <Styles.Resources>
<ResourceDictionary> <ResourceDictionary>
<ResourceDictionary.ThemeDictionaries> <ResourceDictionary.ThemeDictionaries>
<MergeResourceInclude x:Key="Dark" Source="./Themes/Dark/_index.axaml" /> <ResourceInclude x:Key="Dark" Source="./Themes/Dark/_index.axaml" />
<MergeResourceInclude x:Key="Light" Source="./Themes/Light/_index.axaml" /> <ResourceInclude x:Key="Light" Source="./Themes/Light/_index.axaml" />
</ResourceDictionary.ThemeDictionaries> </ResourceDictionary.ThemeDictionaries>
<ResourceDictionary.MergedDictionaries> <ResourceDictionary.MergedDictionaries>
<ResourceInclude Source="../Controls/_index.axaml" /> <ResourceInclude Source="../Controls/_index.axaml" />

View File

@@ -2,6 +2,7 @@
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Markup.Xaml; using Avalonia.Markup.Xaml;
using Avalonia.Styling; using Avalonia.Styling;
using Ursa.Themes.Semi.Locale;
namespace Ursa.Themes.Semi; namespace Ursa.Themes.Semi;
@@ -10,14 +11,14 @@ namespace Ursa.Themes.Semi;
/// </summary> /// </summary>
public class SemiTheme: Styles public class SemiTheme: Styles
{ {
private static readonly Lazy<Dictionary<CultureInfo, string>> _localeToResource = new Lazy<Dictionary<CultureInfo, string>>( private static readonly Lazy<Dictionary<CultureInfo, ResourceDictionary>> _localeToResource = new Lazy<Dictionary<CultureInfo, ResourceDictionary>>(
() => new Dictionary<CultureInfo, string> () => new Dictionary<CultureInfo, ResourceDictionary>
{ {
{ new CultureInfo("zh-CN"), "avares://Ursa.Themes.Semi/Locale/zh-CN.axaml" }, { new CultureInfo("zh-CN"), new zh_cn() },
{ new CultureInfo("en-US"), "avares://Ursa.Themes.Semi/Locale/en-US.axaml" }, { new CultureInfo("en-US"), new en_us() },
}); });
private static readonly string _defaultResource = "avares://Ursa.Themes.Semi/Locale/zh-CN.axaml"; private static readonly ResourceDictionary _defaultResource = new zh_cn();
private readonly IServiceProvider? sp; private readonly IServiceProvider? sp;
public SemiTheme(IServiceProvider? provider = null) public SemiTheme(IServiceProvider? provider = null)
@@ -36,9 +37,8 @@ public class SemiTheme: Styles
{ {
_locale = value; _locale = value;
var resource = TryGetLocaleResource(value); var resource = TryGetLocaleResource(value);
var d = AvaloniaXamlLoader.Load(sp, new Uri(resource)) as ResourceDictionary; if (resource is null) return;
if (d is null) return; foreach (var kv in resource)
foreach (var kv in d)
{ {
this.Resources.Add(kv); this.Resources.Add(kv);
} }
@@ -51,7 +51,7 @@ public class SemiTheme: Styles
} }
} }
private static string TryGetLocaleResource(CultureInfo? locale) private static ResourceDictionary? TryGetLocaleResource(CultureInfo? locale)
{ {
if (Equals(locale, CultureInfo.InvariantCulture)) if (Equals(locale, CultureInfo.InvariantCulture))
{ {

View File

@@ -1,4 +1,5 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui" <ResourceDictionary xmlns="https://github.com/avaloniaui"
x:Class="Ursa.Themes.Semi.Locale.en_us"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Add Resources Here --> <!-- Add Resources Here -->
<x:String x:Key="STRING_MENU_BRING_TO_FRONT">Bring to Front</x:String> <x:String x:Key="STRING_MENU_BRING_TO_FRONT">Bring to Front</x:String>

View File

@@ -0,0 +1,8 @@
using Avalonia.Controls;
namespace Ursa.Themes.Semi.Locale;
public class en_us: ResourceDictionary
{
}

View File

@@ -1,4 +1,5 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui" <ResourceDictionary xmlns="https://github.com/avaloniaui"
x:Class="Ursa.Themes.Semi.Locale.zh_cn"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Add Resources Here --> <!-- Add Resources Here -->
<x:String x:Key="STRING_MENU_BRING_TO_FRONT">置于顶层</x:String> <x:String x:Key="STRING_MENU_BRING_TO_FRONT">置于顶层</x:String>

View File

@@ -0,0 +1,8 @@
using Avalonia.Controls;
namespace Ursa.Themes.Semi.Locale;
public class zh_cn: ResourceDictionary
{
}

View File

@@ -13,6 +13,7 @@
<PackageIcon>irihi.png</PackageIcon> <PackageIcon>irihi.png</PackageIcon>
<PackageLicenseExpression>MIT</PackageLicenseExpression> <PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/irihitech/Ursa.Avalonia</PackageProjectUrl> <PackageProjectUrl>https://github.com/irihitech/Ursa.Avalonia</PackageProjectUrl>
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View File

@@ -39,7 +39,7 @@ public class ControlClassesInput: TemplatedControl
internal static readonly DirectProperty<ControlClassesInput, ObservableCollection<string>> TargetClassesProperty = AvaloniaProperty.RegisterDirect<ControlClassesInput, ObservableCollection<string>>( internal static readonly DirectProperty<ControlClassesInput, ObservableCollection<string>> TargetClassesProperty = AvaloniaProperty.RegisterDirect<ControlClassesInput, ObservableCollection<string>>(
nameof(TargetClasses), o => o.TargetClasses, (o, v) => o.TargetClasses = v); nameof(TargetClasses), o => o.TargetClasses, (o, v) => o.TargetClasses = v);
internal ObservableCollection<string> TargetClasses public ObservableCollection<string> TargetClasses
{ {
get => _targetClasses; get => _targetClasses;
set => SetAndRaise(TargetClassesProperty, ref _targetClasses, value); set => SetAndRaise(TargetClassesProperty, ref _targetClasses, value);

View File

@@ -64,7 +64,7 @@ public class EnumSelector: TemplatedControl
nameof(Values), o => o.Values); nameof(Values), o => o.Values);
private IList<EnumItemTuple>? _values; private IList<EnumItemTuple>? _values;
internal IList<EnumItemTuple>? Values public IList<EnumItemTuple>? Values
{ {
get => _values; get => _values;
private set => SetAndRaise(ValuesProperty, ref _values, value); private set => SetAndRaise(ValuesProperty, ref _values, value);

View File

@@ -124,7 +124,7 @@ public class NavMenuItem: HeaderedItemsControl
internal static readonly DirectProperty<NavMenuItem, int> LevelProperty = AvaloniaProperty.RegisterDirect<NavMenuItem, int>( internal static readonly DirectProperty<NavMenuItem, int> LevelProperty = AvaloniaProperty.RegisterDirect<NavMenuItem, int>(
nameof(Level), o => o.Level, (o, v) => o.Level = v); nameof(Level), o => o.Level, (o, v) => o.Level = v);
private int _level; private int _level;
internal int Level public int Level
{ {
get => _level; get => _level;
set => SetAndRaise(LevelProperty, ref _level, value); set => SetAndRaise(LevelProperty, ref _level, value);

View File

@@ -12,7 +12,7 @@ public abstract class NumberDisplayerBase : TemplatedControl
nameof(InternalText), o => o.InternalText, (o, v) => o.InternalText = v); nameof(InternalText), o => o.InternalText, (o, v) => o.InternalText = v);
private string _internalText; private string _internalText;
internal string InternalText public string InternalText
{ {
get => _internalText; get => _internalText;
set => SetAndRaise(InternalTextProperty, ref _internalText, value); set => SetAndRaise(InternalTextProperty, ref _internalText, value);

View File

@@ -59,13 +59,13 @@ public class VerificationCode: TemplatedControl
} }
public static readonly DirectProperty<VerificationCode, IList<string>> DigitsProperty = AvaloniaProperty.RegisterDirect<VerificationCode, IList<string>>( public static readonly DirectProperty<VerificationCode, IList<string>> DigitsProperty = AvaloniaProperty.RegisterDirect<VerificationCode, IList<string>>(
nameof(Digits), o => o.Digits, (o, v) => o.Digits = v); nameof(Digits), o => o.Digits);
private IList<string> _digits = []; private IList<string> _digits = [];
internal IList<string> Digits public IList<string> Digits
{ {
get => _digits; get => _digits;
set => SetAndRaise(DigitsProperty, ref _digits, value); private set => SetAndRaise(DigitsProperty, ref _digits, value);
} }
public static readonly RoutedEvent<VerificationCodeCompleteEventArgs> CompleteEvent = public static readonly RoutedEvent<VerificationCodeCompleteEventArgs> CompleteEvent =