Sample improves
* UserControl sample. * Multi-theme support. * NativeMenu on macOS. * GitHub workflow for Windows, Linux and MacOS artifact compilation.
This commit is contained in:
9
src/Controls/MainControl.axaml
Normal file
9
src/Controls/MainControl.axaml
Normal file
@ -0,0 +1,9 @@
|
||||
<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"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="AvaloniaCoreRTDemo.Controls.MainControl">
|
||||
<Grid ColumnDefinitions="*,*" RowDefinitions="Auto,Auto,*" Margin="32">
|
||||
<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" TextAlignment="Center" Margin="0,6">Welcome to Avalonia UI + NativeAOT!</TextBlock>
|
||||
<Image Grid.Row="1" Grid.Column="0" Stretch="None" Source="{Binding DotNetImage}"/>
|
||||
<Image Grid.Row="1" Grid.Column="1" Stretch="None" Source="{Binding AvaloniaImage}"/>
|
||||
<TextBox Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Watermark="Type here" AcceptsReturn="True" TextWrapping="Wrap"/>
|
||||
</Grid>
|
||||
</UserControl>
|
21
src/Controls/MainControl.axaml.cs
Normal file
21
src/Controls/MainControl.axaml.cs
Normal file
@ -0,0 +1,21 @@
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Markup.Xaml;
|
||||
|
||||
using AvaloniaCoreRTDemo.Controls.ViewModels;
|
||||
|
||||
namespace AvaloniaCoreRTDemo.Controls
|
||||
{
|
||||
public sealed partial class MainControl : UserControl
|
||||
{
|
||||
public MainControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
AvaloniaXamlLoader.Load(this);
|
||||
this.DataContext = new MainViewModel();
|
||||
}
|
||||
}
|
||||
}
|
34
src/Controls/ViewModels/MainViewModel.cs
Normal file
34
src/Controls/ViewModels/MainViewModel.cs
Normal file
@ -0,0 +1,34 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
using Avalonia.Media.Imaging;
|
||||
|
||||
using ReactiveUI;
|
||||
|
||||
namespace AvaloniaCoreRTDemo.Controls.ViewModels
|
||||
{
|
||||
internal sealed class MainViewModel : ReactiveObject
|
||||
{
|
||||
private readonly IBitmap _dotNetImage;
|
||||
private readonly IBitmap _avaloniaImage;
|
||||
|
||||
public IBitmap DotNetImage
|
||||
{
|
||||
get { return _dotNetImage; }
|
||||
set { this.RaiseAndSetIfChanged(ref Unsafe.AsRef(this._dotNetImage), value); }
|
||||
}
|
||||
|
||||
public IBitmap AvaloniaImage
|
||||
{
|
||||
get { return _avaloniaImage; }
|
||||
set { this.RaiseAndSetIfChanged(ref Unsafe.AsRef(this._avaloniaImage), value); }
|
||||
}
|
||||
|
||||
public MainViewModel()
|
||||
{
|
||||
this._dotNetImage = new Bitmap(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "dotnet.png"));
|
||||
this._avaloniaImage = new Bitmap(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "avalonia.png"));
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user