-
Notifications
You must be signed in to change notification settings - Fork 114
3. Controls
Clément Sepulchre edited this page Dec 31, 2023
·
32 revisions
<GlassCard></GlassCard>
<Window
...
Classes="NakedWindow"
xmlns:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
>
<suki:DesktopPage
Title="Suki UI Testing - New Project"
LogoColor="#2f54eb"
LogoKind="Xaml"
MenuVisibility="True"
Name="myPage">
<suki:DesktopPage.MenuItems>
<MenuItem Header="File">
<MenuItem Header="File" />
<MenuItem Header="Edit" />
<MenuItem Header="Help" />
</MenuItem>
<MenuItem Header="Edit" />
<MenuItem Header="Help" />
</suki:DesktopPage.MenuItems>
<Grid> Content </Grid>
</suki:DesktopPage>
</Window>
<Window
...
Classes="NakedWindow"
xmlns:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
>
<suki:DesktopPage
Title="Suki UI Testing - New Project"
LogoColor="#2f54eb"
LogoKind="Xaml"
MenuVisibility="False"
IsMaximizeButtonEnabled="False"
IsMinimizeButtonEnabled="False"
Name="myPage">
<Grid> Content </Grid>
</suki:DesktopPage>
</Window>
- Minimize and maximize buttons can be enabled in XAML by setting
IsMinimizeButtonEnabled
andIsMaximizeButtonEnabled
properties toTrue
. Default isFalse
.
<TabControl>
<TabItem Header="Red Tab">
<Grid Background="#44ff0000" />
</TabItem>
<TabItem Header="Green Tab">
<Grid Background="#4400ff00" />
</TabItem>
<TabItem Header="Blue Tab">
<Grid Background="#440000ff" />
</TabItem>
</TabControl>
<suki:SettingsLayout>
<suki:SettingsLayout.Items>
<objectModel:ObservableCollection x:TypeArguments="suki:SettingsLayoutItem">
<suki:SettingsLayoutItem Header="Settings Part1">
<suki:SettingsLayoutItem.Content>
<Border Background="LightGray" Height="300" />
</suki:SettingsLayoutItem.Content>
</suki:SettingsLayoutItem>
<suki:SettingsLayoutItem Header="Settings Part 2">
<suki:SettingsLayoutItem.Content>
<Border Background="LightGray" Height="300" />
</suki:SettingsLayoutItem.Content>
</suki:SettingsLayoutItem>
<suki:SettingsLayoutItem Header="Settings Part 3">
<suki:SettingsLayoutItem.Content>
<Border Background="LightGray" Height="300" />
</suki:SettingsLayoutItem.Content>
</suki:SettingsLayoutItem>
</objectModel:ObservableCollection>
</suki:SettingsLayout.Items>
</suki:SettingsLayout>
<ToggleButton Classes="Switch" />
<Button Classes="Primary" Content="Primary" />
<Button Classes="Primary Rounded" Content="Rounded" />
<Button Classes="Accent" Content="Accent" />
<Button Content="Neutral" />
<Button Classes="Outlined" Content="Outlined" />
<Slider IsSnapToTickEnabled="True" Maximum="100" Minimum="0" TickFrequency="1" Value="50"></Slider>
<TextBox Text="This is Text"></TextBox>
<TextBox Text="Delete Enabled" theme:TextBoxExtensions.AddDeleteButton="True"></TextBox>
<TextBox Watermark="Watermark"></TextBox>
<TextBox theme:TextBoxExtensions.Prefix="http" Watermark="avaloniaui.com"></TextBox>
<ComboBox PlaceholderText="Select a Color">
<ComboBoxItem>
<TextBlock>Red</TextBlock>
</ComboBoxItem>
<ComboBoxItem>
<TextBlock>Green</TextBlock>
</ComboBoxItem>
<ComboBoxItem>
<TextBlock>Blue</TextBlock>
</ComboBoxItem>
</ComboBox>
<NumericUpDown></NumericUpDown>
<StackPanel Orientation="Vertical">
<RadioButton Margin="5">Item 1</RadioButton>
<RadioButton Margin="5">Item 2</RadioButton>
<RadioButton Margin="5">Item 3</RadioButton>
</StackPanel>
<RadioButton Classes="GigaChips" >
...
</RadioButton>
<DatePicker />
xmlns:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
...
<suki:WaveProgress Value="50" IsTextVisible="True" />
xmlns:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
...
<suki:Stepper Name="myStep" />
this.FindControl<Stepper>("myStep").Steps = new List<string>() { "one", "two", "thre", "four", "five" };
this.FindControl<Stepper>("myStep").Index = 2;
xmlns:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
...
<suki:CircleProgressBar Height="130" StrokeWidth="11" Value="20" Width="130">
<TextBlock Classes="h3">20</TextBlock>
</suki:CircleProgressBar>
xmlns:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
...
<suki:Loading></suki:Loading>
<ProgressBar Value="60" />
xmlns:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
...
<suki:PropertyGrid Name="propertyGrid" />
...
this.FindControl<PropertyGrid>("propertyGrid").Item = new Person()
{
Name = "Billy",
Partner = new Person()
{
Name = "Charles"
}
};
<DataGrid Name="myDataGrid" AutoGenerateColumns="True" IsReadOnly="True" />
this.FindControl<DataGrid>("myDataGrid").Items = new List<Person>();
<ListBox>
<TextBlock>item 1</TextBlock>
<TextBlock>item 2</TextBlock>
<TextBlock>item 3</TextBlock>
</ListBox>
<TreeView>
<TreeViewItem Header="blub">
<TreeViewItem Header="blub" />
<TreeViewItem Header="blub" />
</TreeViewItem>
<TreeViewItem Header="blub" />
<TreeViewItem Header="blub" />
</TreeView>
xmlns:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
...
<suki:GroupBox Header="Test Header">
<Grid Height="100" Width="150">
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Test Content</TextBlock>
</Grid>
</suki:GroupBox>
WindowNotificationManager notificationManager;
public MainWindow()
{
InitializeComponent();
notificationManager = new WindowNotificationManager(this);
}
private void ShowNotification(object sender, RoutedEventArgs e)
{
var notif = new Avalonia.Controls.Notifications.Notification("title","message");
notificationManager.Show(notif);
}
<suki:BusyArea IsBusy="False">
<!-- Content -->
</suki:BusyArea>
<Expander Header="Click To Expand">
<TextBlock>Expanded</TextBlock>
</Expander>
SukiUI.MessageBox.MessageBox.Info(this, "Title", "This is an information message that need to be read.");
<Border Classes="Card"></Border>
<Border Classes="Card Hoverable"></Border>
<StackPanel>
<TextBlock Classes="h1">h1</TextBlock>
<TextBlock Classes="h2">h2</TextBlock>
<TextBlock Classes="h3">h3</TextBlock>
<TextBlock Classes="h4">h4</TextBlock>
<TextBlock>Normal</TextBlock>
<TextBlock Classes="Accent">Accent</TextBlock>
</StackPanel>
<Border.ContextMenu>
<ContextMenu>
<MenuItem Header="Menu item 1" />
<MenuItem Header="Menu item 2" />
<Separator />
<MenuItem Header="Menu item 3" />
</ContextMenu>
</Border.ContextMenu>