feat: Add GridSplitter
This commit is contained in:
parent
22663a3769
commit
c94dfb2948
42
demo/Semi.Avalonia.Demo/Pages/GridSplitter.axaml
Normal file
42
demo/Semi.Avalonia.Demo/Pages/GridSplitter.axaml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<UserControl
|
||||||
|
x:Class="Semi.Avalonia.Demo.Pages.GridSplitter"
|
||||||
|
xmlns="https://github.com/avaloniaui"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
d:DesignHeight="450"
|
||||||
|
d:DesignWidth="800"
|
||||||
|
mc:Ignorable="d">
|
||||||
|
<StackPanel HorizontalAlignment="Left" Spacing="20">
|
||||||
|
<Grid
|
||||||
|
Width="300"
|
||||||
|
Height="300"
|
||||||
|
RowDefinitions="*, Auto, *">
|
||||||
|
<Border
|
||||||
|
HorizontalAlignment="Stretch"
|
||||||
|
Background="#FEFBCB"
|
||||||
|
CornerRadius="10" />
|
||||||
|
<GridSplitter Grid.Row="1" ShowsPreview="True" />
|
||||||
|
<Border
|
||||||
|
Grid.Row="2"
|
||||||
|
HorizontalAlignment="Stretch"
|
||||||
|
Background="#FEFBCB"
|
||||||
|
CornerRadius="10" />
|
||||||
|
</Grid>
|
||||||
|
<Grid
|
||||||
|
Width="300"
|
||||||
|
Height="300"
|
||||||
|
ColumnDefinitions="*, Auto, *">
|
||||||
|
<Border
|
||||||
|
HorizontalAlignment="Stretch"
|
||||||
|
Background="#FEFBCB"
|
||||||
|
CornerRadius="10" />
|
||||||
|
<GridSplitter Grid.Column="1" ShowsPreview="True" />
|
||||||
|
<Border
|
||||||
|
Grid.Column="2"
|
||||||
|
HorizontalAlignment="Stretch"
|
||||||
|
Background="#FEFBCB"
|
||||||
|
CornerRadius="10" />
|
||||||
|
</Grid>
|
||||||
|
</StackPanel>
|
||||||
|
</UserControl>
|
18
demo/Semi.Avalonia.Demo/Pages/GridSplitter.axaml.cs
Normal file
18
demo/Semi.Avalonia.Demo/Pages/GridSplitter.axaml.cs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
using Avalonia;
|
||||||
|
using Avalonia.Controls;
|
||||||
|
using Avalonia.Markup.Xaml;
|
||||||
|
|
||||||
|
namespace Semi.Avalonia.Demo.Pages;
|
||||||
|
|
||||||
|
public partial class GridSplitter : UserControl
|
||||||
|
{
|
||||||
|
public GridSplitter()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
AvaloniaXamlLoader.Load(this);
|
||||||
|
}
|
||||||
|
}
|
@ -39,6 +39,9 @@
|
|||||||
<TabItem Header="Flyout">
|
<TabItem Header="Flyout">
|
||||||
<pages:FlyoutDemo />
|
<pages:FlyoutDemo />
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
<TabItem Header="GridSplitter">
|
||||||
|
<pages:GridSplitter />
|
||||||
|
</TabItem>
|
||||||
<TabItem Header="Label">
|
<TabItem Header="Label">
|
||||||
<pages:LabelDemo />
|
<pages:LabelDemo />
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/ContextMenu.axaml" />
|
<ResourceInclude Source="avares://Semi.Avalonia/Controls/ContextMenu.axaml" />
|
||||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/Expander.axaml" />
|
<ResourceInclude Source="avares://Semi.Avalonia/Controls/Expander.axaml" />
|
||||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/FlyoutPresenter.axaml" />
|
<ResourceInclude Source="avares://Semi.Avalonia/Controls/FlyoutPresenter.axaml" />
|
||||||
|
<ResourceInclude Source="avares://Semi.Avalonia/Controls/GridSplitter.axaml" />
|
||||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/ItemsControl.axaml" />
|
<ResourceInclude Source="avares://Semi.Avalonia/Controls/ItemsControl.axaml" />
|
||||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/Label.axaml" />
|
<ResourceInclude Source="avares://Semi.Avalonia/Controls/Label.axaml" />
|
||||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/ListBox.axaml" />
|
<ResourceInclude Source="avares://Semi.Avalonia/Controls/ListBox.axaml" />
|
||||||
|
25
src/Semi.Avalonia/Controls/GridSplitter.axaml
Normal file
25
src/Semi.Avalonia/Controls/GridSplitter.axaml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
|
<ControlTheme x:Key="{x:Type GridSplitter}" TargetType="GridSplitter">
|
||||||
|
<Setter Property="Focusable" Value="True" />
|
||||||
|
<Setter Property="MinWidth" Value="6" />
|
||||||
|
<Setter Property="MinHeight" Value="6" />
|
||||||
|
<Setter Property="GridSplitter.Padding" Value="2" />
|
||||||
|
<Setter Property="Background" Value="{DynamicResource GridSplitterBackground}" />
|
||||||
|
<Setter Property="PreviewContent">
|
||||||
|
<Template>
|
||||||
|
<Rectangle Fill="{DynamicResource GridSplitterPreviewBackground}" />
|
||||||
|
</Template>
|
||||||
|
</Setter>
|
||||||
|
<Setter Property="Template">
|
||||||
|
<ControlTemplate TargetType="GridSplitter">
|
||||||
|
<Border Padding="{TemplateBinding Padding}" Background="Transparent">
|
||||||
|
<Border
|
||||||
|
Background="{TemplateBinding Background}"
|
||||||
|
BorderBrush="{TemplateBinding BorderBrush}"
|
||||||
|
BorderThickness="{TemplateBinding BorderThickness}"
|
||||||
|
CornerRadius="{TemplateBinding CornerRadius}" />
|
||||||
|
</Border>
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter>
|
||||||
|
</ControlTheme>
|
||||||
|
</ResourceDictionary>
|
5
src/Semi.Avalonia/Themes/Light/GridSplitter.axaml
Normal file
5
src/Semi.Avalonia/Themes/Light/GridSplitter.axaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
|
<!-- Add Resources Here -->
|
||||||
|
<SolidColorBrush x:Key="GridSplitterBackground" Opacity="0.08" Color="#1C1F23" />
|
||||||
|
<SolidColorBrush x:Key="GridSplitterPreviewBackground" Color="#CBE7FE" />
|
||||||
|
</ResourceDictionary>
|
@ -9,6 +9,7 @@
|
|||||||
<ResourceInclude Source="avares://Semi.Avalonia/Themes/Light/CheckBox.axaml" />
|
<ResourceInclude Source="avares://Semi.Avalonia/Themes/Light/CheckBox.axaml" />
|
||||||
<ResourceInclude Source="avares://Semi.Avalonia/Themes/Light/ComboBox.axaml" />
|
<ResourceInclude Source="avares://Semi.Avalonia/Themes/Light/ComboBox.axaml" />
|
||||||
<ResourceInclude Source="avares://Semi.Avalonia/Themes/Light/Expander.axaml" />
|
<ResourceInclude Source="avares://Semi.Avalonia/Themes/Light/Expander.axaml" />
|
||||||
|
<ResourceInclude Source="avares://Semi.Avalonia/Themes/Light/GridSplitter.axaml" />
|
||||||
<ResourceInclude Source="avares://Semi.Avalonia/Themes/Light/Label.axaml" />
|
<ResourceInclude Source="avares://Semi.Avalonia/Themes/Light/Label.axaml" />
|
||||||
<ResourceInclude Source="avares://Semi.Avalonia/Themes/Light/ListBox.axaml" />
|
<ResourceInclude Source="avares://Semi.Avalonia/Themes/Light/ListBox.axaml" />
|
||||||
<ResourceInclude Source="avares://Semi.Avalonia/Themes/Light/Menu.axaml" />
|
<ResourceInclude Source="avares://Semi.Avalonia/Themes/Light/Menu.axaml" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user