diff --git a/src/Semi.Avalonia.Demo/MainWindow.axaml b/src/Semi.Avalonia.Demo/MainWindow.axaml index 30d415c..034eba6 100644 --- a/src/Semi.Avalonia.Demo/MainWindow.axaml +++ b/src/Semi.Avalonia.Demo/MainWindow.axaml @@ -16,6 +16,9 @@ + + + diff --git a/src/Semi.Avalonia.Demo/Pages/AutoCompleteBoxDemo.axaml b/src/Semi.Avalonia.Demo/Pages/AutoCompleteBoxDemo.axaml new file mode 100644 index 0000000..8b249b9 --- /dev/null +++ b/src/Semi.Avalonia.Demo/Pages/AutoCompleteBoxDemo.axaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Semi.Avalonia.Demo/Pages/AutoCompleteBoxDemo.axaml.cs b/src/Semi.Avalonia.Demo/Pages/AutoCompleteBoxDemo.axaml.cs new file mode 100644 index 0000000..f306155 --- /dev/null +++ b/src/Semi.Avalonia.Demo/Pages/AutoCompleteBoxDemo.axaml.cs @@ -0,0 +1,99 @@ +using System.Collections.ObjectModel; +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; +using System.Collections.Generic; +using CommunityToolkit.Mvvm.ComponentModel; + +namespace Semi.Avalonia.Demo.Pages; + +public partial class AutoCompleteBoxDemo : UserControl +{ + public AutoCompleteBoxDemo() + { + InitializeComponent(); + this.DataContext = new AutoCompleteBoxDemoViewModel(); + } +} + +public class AutoCompleteBoxDemoViewModel: ObservableObject +{ + public ObservableCollection States { get; set; } + + public AutoCompleteBoxDemoViewModel() + { + States = new ObservableCollection(GetStates()); + + } + + private static List GetStates() + { + return new List + { + new StateData("Alabama", "AL", "Montgomery"), + new StateData("Alaska", "AK", "Juneau"), + new StateData("Arizona", "AZ", "Phoenix"), + new StateData("Arkansas", "AR", "Little Rock"), + new StateData("California", "CA", "Sacramento"), + new StateData("Colorado", "CO", "Denver"), + new StateData("Connecticut", "CT", "Hartford"), + new StateData("Delaware", "DE", "Dover"), + new StateData("Florida", "FL", "Tallahassee"), + new StateData("Georgia", "GA", "Atlanta"), + new StateData("Hawaii", "HI", "Honolulu"), + new StateData("Idaho", "ID", "Boise"), + new StateData("Illinois", "IL", "Springfield"), + new StateData("Indiana", "IN", "Indianapolis"), + new StateData("Iowa", "IA", "Des Moines"), + new StateData("Kansas", "KS", "Topeka"), + new StateData("Kentucky", "KY", "Frankfort"), + new StateData("Louisiana", "LA", "Baton Rouge"), + new StateData("Maine", "ME", "Augusta"), + new StateData("Maryland", "MD", "Annapolis"), + new StateData("Massachusetts", "MA", "Boston"), + new StateData("Michigan", "MI", "Lansing"), + new StateData("Minnesota", "MN", "St. Paul"), + new StateData("Mississippi", "MS", "Jackson"), + new StateData("Missouri", "MO", "Jefferson City"), + new StateData("Montana", "MT", "Helena"), + new StateData("Nebraska", "NE", "Lincoln"), + new StateData("Nevada", "NV", "Carson City"), + new StateData("New Hampshire", "NH", "Concord"), + new StateData("New Jersey", "NJ", "Trenton"), + new StateData("New Mexico", "NM", "Santa Fe"), + new StateData("New York", "NY", "Albany"), + new StateData("North Carolina", "NC", "Raleigh"), + new StateData("North Dakota", "ND", "Bismarck"), + new StateData("Ohio", "OH", "Columbus"), + new StateData("Oklahoma", "OK", "Oklahoma City"), + new StateData("Oregon", "OR", "Salem"), + new StateData("Pennsylvania", "PA", "Harrisburg"), + new StateData("Rhode Island", "RI", "Providence"), + new StateData("South Carolina", "SC", "Columbia"), + new StateData("South Dakota", "SD", "Pierre"), + new StateData("Tennessee", "TN", "Nashville"), + new StateData("Texas", "TX", "Austin"), + new StateData("Utah", "UT", "Salt Lake City"), + new StateData("Vermont", "VT", "Montpelier"), + new StateData("Virginia", "VA", "Richmond"), + new StateData("Washington", "WA", "Olympia"), + new StateData("West Virginia", "WV", "Charleston"), + new StateData("Wisconsin", "WI", "Madison"), + new StateData("Wyoming", "WY", "Cheyenne"), + }; + } +} + +public class StateData +{ + public string Name { get; private set; } + public string Abbreviation { get; private set; } + public string Capital { get; private set; } + + public StateData(string name, string abbreviation, string capital) + { + Name = name; + Abbreviation = abbreviation; + Capital = capital; + } +} \ No newline at end of file diff --git a/src/Semi.Avalonia.Demo/Semi.Avalonia.Demo.csproj b/src/Semi.Avalonia.Demo/Semi.Avalonia.Demo.csproj index fd3a937..2b35c12 100644 --- a/src/Semi.Avalonia.Demo/Semi.Avalonia.Demo.csproj +++ b/src/Semi.Avalonia.Demo/Semi.Avalonia.Demo.csproj @@ -22,6 +22,7 @@ + diff --git a/src/Semi.Avalonia/Controls/AutoCompleteBox.axaml b/src/Semi.Avalonia/Controls/AutoCompleteBox.axaml new file mode 100644 index 0000000..5cf2c77 --- /dev/null +++ b/src/Semi.Avalonia/Controls/AutoCompleteBox.axaml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Semi.Avalonia/Controls/Controls.axaml b/src/Semi.Avalonia/Controls/Controls.axaml index 9dc53b1..16d331a 100644 --- a/src/Semi.Avalonia/Controls/Controls.axaml +++ b/src/Semi.Avalonia/Controls/Controls.axaml @@ -1,6 +1,7 @@ + diff --git a/src/Semi.Avalonia/Themes/Light/AutoCompleteBox.axaml b/src/Semi.Avalonia/Themes/Light/AutoCompleteBox.axaml new file mode 100644 index 0000000..d912ebb --- /dev/null +++ b/src/Semi.Avalonia/Themes/Light/AutoCompleteBox.axaml @@ -0,0 +1,12 @@ + + + + 0 0 8 0 #1A000000 + + + 1 + 0 4 + 6 + + + diff --git a/src/Semi.Avalonia/Themes/Light/Light.axaml b/src/Semi.Avalonia/Themes/Light/Light.axaml index 017a3e2..65064e5 100644 --- a/src/Semi.Avalonia/Themes/Light/Light.axaml +++ b/src/Semi.Avalonia/Themes/Light/Light.axaml @@ -2,6 +2,7 @@ + diff --git a/src/Semi.Avalonia/Themes/Light/TextBox.axaml b/src/Semi.Avalonia/Themes/Light/TextBox.axaml index f37cbe7..6f1a2d4 100644 --- a/src/Semi.Avalonia/Themes/Light/TextBox.axaml +++ b/src/Semi.Avalonia/Themes/Light/TextBox.axaml @@ -4,47 +4,23 @@ xmlns:sys="clr-namespace:System;assembly=System.Runtime"> - + - + - - + + - - + + - + - + 30