Merge pull request #480 from WCKYWCKF/new-control
Add a new control AspectRatioLayout
This commit is contained in:
79
demo/Ursa.Demo/Pages/AspectRatioLayoutDemo.axaml
Normal file
79
demo/Ursa.Demo/Pages/AspectRatioLayoutDemo.axaml
Normal file
@@ -0,0 +1,79 @@
|
||||
<UserControl 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"
|
||||
xmlns:u="https://irihi.tech/ursa"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="Ursa.Demo.Pages.AspectRatioLayoutDemo">
|
||||
<Grid
|
||||
RowDefinitions="Auto,*">
|
||||
<StackPanel
|
||||
Grid.Row="0">
|
||||
<u:NumericDoubleUpDown InnerLeftContent="AspectRatioTolerance"
|
||||
Value="{Binding #AspectRatioLayout.AspectRatioTolerance}">
|
||||
</u:NumericDoubleUpDown>
|
||||
<TextBlock Text="{Binding #AspectRatioLayout.AspectRatioValue,StringFormat='AspectRatioValue: {0}'}"></TextBlock>
|
||||
</StackPanel>
|
||||
|
||||
<u:AspectRatioLayout Name="AspectRatioLayout" Grid.Row="1"
|
||||
BorderThickness="1"
|
||||
BorderBrush="Red"
|
||||
Margin="2"
|
||||
CornerRadius="10">
|
||||
<u:AspectRatioLayoutItem AcceptAspectRatioMode="HorizontalRectangle">
|
||||
<Button>HorizontalRectangle ControlLayout</Button>
|
||||
</u:AspectRatioLayoutItem>
|
||||
<u:AspectRatioLayoutItem AcceptAspectRatioMode="VerticalRectangle">
|
||||
<Button>VerticalRectangle ControlLayout</Button>
|
||||
</u:AspectRatioLayoutItem>
|
||||
<u:AspectRatioLayoutItem AcceptAspectRatioMode="Square">
|
||||
<Button>Square ControlLayout</Button>
|
||||
</u:AspectRatioLayoutItem>
|
||||
<u:AspectRatioLayoutItem StartAspectRatioValue="2" EndAspectRatioValue="2.2">
|
||||
<TextBlock
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center">
|
||||
<Run Text="{Binding $parent[u:AspectRatioLayoutItem].StartAspectRatioValue,StringFormat='StartAspectRatioValue {0}'}"></Run>
|
||||
<LineBreak></LineBreak>
|
||||
<Run Text="{Binding $parent[u:AspectRatioLayoutItem].EndAspectRatioValue,StringFormat='EndAspectRatioValue {0}'}"></Run>
|
||||
</TextBlock>
|
||||
</u:AspectRatioLayoutItem>
|
||||
<u:AspectRatioLayoutItem StartAspectRatioValue="2" EndAspectRatioValue="2.4">
|
||||
<TextBlock
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center">
|
||||
<Run Text="{Binding $parent[u:AspectRatioLayoutItem].StartAspectRatioValue,StringFormat='StartAspectRatioValue {0}'}"></Run>
|
||||
<LineBreak></LineBreak>
|
||||
<Run Text="{Binding $parent[u:AspectRatioLayoutItem].EndAspectRatioValue,StringFormat='EndAspectRatioValue {0}'}"></Run>
|
||||
</TextBlock>
|
||||
</u:AspectRatioLayoutItem>
|
||||
<u:AspectRatioLayoutItem StartAspectRatioValue="2" EndAspectRatioValue="2.6">
|
||||
<TextBlock
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center">
|
||||
<Run Text="{Binding $parent[u:AspectRatioLayoutItem].StartAspectRatioValue,StringFormat='StartAspectRatioValue {0}'}"></Run>
|
||||
<LineBreak></LineBreak>
|
||||
<Run Text="{Binding $parent[u:AspectRatioLayoutItem].EndAspectRatioValue,StringFormat='EndAspectRatioValue {0}'}"></Run>
|
||||
</TextBlock>
|
||||
</u:AspectRatioLayoutItem>
|
||||
<u:AspectRatioLayoutItem StartAspectRatioValue="2" EndAspectRatioValue="2.8">
|
||||
<TextBlock
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center">
|
||||
<Run Text="{Binding $parent[u:AspectRatioLayoutItem].StartAspectRatioValue,StringFormat='StartAspectRatioValue {0}'}"></Run>
|
||||
<LineBreak></LineBreak>
|
||||
<Run Text="{Binding $parent[u:AspectRatioLayoutItem].EndAspectRatioValue,StringFormat='EndAspectRatioValue {0}'}"></Run>
|
||||
</TextBlock>
|
||||
</u:AspectRatioLayoutItem>
|
||||
<u:AspectRatioLayoutItem StartAspectRatioValue="1.3" EndAspectRatioValue="1.5">
|
||||
<TextBlock
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center">
|
||||
<Run Text="{Binding $parent[u:AspectRatioLayoutItem].StartAspectRatioValue,StringFormat='StartAspectRatioValue {0}'}"></Run>
|
||||
<LineBreak></LineBreak>
|
||||
<Run Text="{Binding $parent[u:AspectRatioLayoutItem].EndAspectRatioValue,StringFormat='EndAspectRatioValue {0}'}"></Run>
|
||||
</TextBlock>
|
||||
</u:AspectRatioLayoutItem>
|
||||
</u:AspectRatioLayout>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
13
demo/Ursa.Demo/Pages/AspectRatioLayoutDemo.axaml.cs
Normal file
13
demo/Ursa.Demo/Pages/AspectRatioLayoutDemo.axaml.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Markup.Xaml;
|
||||
|
||||
namespace Ursa.Demo.Pages;
|
||||
|
||||
public partial class AspectRatioLayoutDemo : UserControl
|
||||
{
|
||||
public AspectRatioLayoutDemo()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public class AspectRatioLayoutDemoViewModel : ViewModelBase
|
||||
{
|
||||
}
|
||||
@@ -77,6 +77,7 @@ public partial class MainViewViewModel : ViewModelBase
|
||||
MenuKeys.MenuKeyToolBar => new ToolBarDemoViewModel(),
|
||||
MenuKeys.MenuKeyTreeComboBox => new TreeComboBoxDemoViewModel(),
|
||||
MenuKeys.MenuKeyTwoTonePathIcon => new TwoTonePathIconDemoViewModel(),
|
||||
MenuKeys.AspectRatioLayout => new AspectRatioLayoutDemoViewModel(),
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(s), s, null)
|
||||
};
|
||||
}
|
||||
|
||||
@@ -58,6 +58,7 @@ public class MenuViewModel : ViewModelBase
|
||||
new() { MenuHeader = "ToolBar", Key = MenuKeys.MenuKeyToolBar },
|
||||
new() { MenuHeader = "TreeComboBox", Key = MenuKeys.MenuKeyTreeComboBox },
|
||||
new() { MenuHeader = "TwoTonePathIcon", Key = MenuKeys.MenuKeyTwoTonePathIcon },
|
||||
new() { MenuHeader = "AspectRatioLayout", Key = MenuKeys.AspectRatioLayout ,Status = "WIP"},
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -111,4 +112,5 @@ public static class MenuKeys
|
||||
public const string MenuKeyToolBar = "ToolBar";
|
||||
public const string MenuKeyTreeComboBox = "TreeComboBox";
|
||||
public const string MenuKeyTwoTonePathIcon = "TwoTonePathIcon";
|
||||
public const string AspectRatioLayout = "AspectRatioLayout";
|
||||
}
|
||||
Reference in New Issue
Block a user