Belajar Avalonia #2 Configurasi Window
Kita akan belajar mengetahui configurasi yang bisa kita gunakan di avalonia untuk mengatur window utama. Pengaturan2 window ini akan berguna ketika kita mentargetkan platform kita adalah platform dekstop. Seperti window, linux atau pun mac os. Sedangkan untuk platform Android dan IOS, mungkin kita akan menggunakan hanya sedikit saja
Setidaknya ada 2 cara untuk mengaturnya. Yaitu pengaturan default saat aplikasi di jalanakan, Dan juga flexible dengan menggunakan button untuk mengatur window.
1. Pengaturan default saat aplikasi di jalankan pada file axaml.
<Window 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="MyApp.MainWindow"
Title="MyApp"
>
........
</Window>
Di atas ada sebuah tag bernama Window, digunakan untuk mengatur seperti apa window kita akan di bikin. Pada bagian ini kita akan mencoba untuk mengenalkan properti properti apa saja yang ada di dalam window. Jadi kita akan fokus belajar pada tag Window.
Properti window yang Mungkin sering kita gunakan di dalam Avalonia adalah.
Penggunaan di file *.axaml
Title="MyApp"
Digunakan untuk mengatur state saat aplikasi di jalankan perta makali. Valuenya adalah Normal, Minimized,Maximized, FullScreen,
Contoh penggunaan di axaml
WindowState="Normal"
Icon
Untuk menggunakan icon, bisa dengan membuat sebuah folder Asset didalam root, kemudian kita daftarkan di file *.csproj
<ItemGroup>
<AvaloniaResource Include="Assets\**"/>
</ItemGroup>
Setelah itu anda bisa menggunakannya di file *.axaml dengan cara
Icon="/Assets/example.png"
Digunakan apakah window dapat di riseze atau tidak . Value nya dalah true dan false. Penggunaan di file *.axaml
CanResize= "false"
Di gunakan untuk mengatur posisi saat pertamakali aplikasi di jalankan . Valuenya adalah Manual, CenterScreen,CenterOwner
Penggunaan di file *.axaml
WindowStartupLocation ="CenterScreen"
Untuk mengatur window berdasarkan ukuran content yang ada didalamanya . Valuenya adalah Manual atau 0 , Width atau 1 , Height atau 2 ,WidthAndHeight atau 3
Penggunaan di file *.axaml
SizeToContent ="Height"
Untuk mengatur apakah window selalu di bagian front atau dibagian back
Topmost="true"
Untuk mengatur position window dalam screen
Position= "500,20"
2. Pengaturan sesudah aplikasi di jalankan .
<Window xmlns="https://github.com/avaloniaui"
......
x:Class="MyApp.MainWindow"
......
>
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
<Button Click="functionChangeProperti" >ChangeProperti</Button>
</StackPanel>
</Window>
Diatas ada button dengan valuenya adalah ChangeProperti . dan ketika click dia menargetkan di method functionChangeProperti. Kemudian di bagian atas ada properti x:class=MyApp.MainWindow . Ini maksudnya file ini terhubung dengan class Main.Window.axaml.cs . Jadi kita akan taruh method kita pada file Main.Window.axaml.cs. Jadi kita akan bikin sebuah method functionChangeProperti , dan kita akan taruh method kita pada file Main.Window.axaml.cs.
Berikut adalah contoh method yang bisa kita tuliskan.
public void functionChangeProperti(object sender, RoutedEventArgs args){
this.Hide(); // untuk menyebunyikan window
this.Close(); // untuk close window
this.Title="New Title"; // untuk mengganti title
this.Width=200; // untuk merubah lebar window
this.Height = 500; // untuk merubah tinggi window
this.WindowState=WindowState.Minimized; // untuk meminimize window
this.Topmost= true; // untuk menjadikan topmost
this.Position = new (20,20); // untuk merubah position
}