Blog Details

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.

Ketika kita koding dengan avalonia, kita akan di hadapkan dengan file axaml. Dan kita akan banyak bekarja di file tersebut. Secara default kita akan mendapatkan code code di dalam file axaml dengan code kurang lebih seperti dibawah ini.
<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.

Title

Penggunaan di file *.axaml

Title="MyApp"
WindowState

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"
CanResize

Digunakan apakah window dapat di riseze atau tidak . Value nya dalah true dan false. Penggunaan di file *.axaml

CanResize= "false"

 

WindowStartupLocation

Di gunakan untuk mengatur posisi saat pertamakali aplikasi di jalankan . Valuenya adalah Manual, CenterScreen,CenterOwner

Penggunaan di file *.axaml

WindowStartupLocation ="CenterScreen"
SizeToContent

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"

 

TopMost

Untuk mengatur apakah window selalu di bagian front atau dibagian back

Topmost="true"
 
Position

Untuk mengatur position window dalam screen

Position= "500,20"

2. Pengaturan sesudah aplikasi di jalankan .

Kita juga bisa mengubah properti konfigurasi dari windows saat aplikasi sudah berjalan. Sebagai contoh kita menempatkan sebuah button. Button ini berfungsi untuk merubah properti2 dari windows sesuai dengan yang dibutuhkan. Seperti button untuk minimize windows, button untuk close windows dan lain sebagainya. Ini juga bisa kita kerjakan dengan mudah di avalonia.
Caranya adalah dengan kita menambahkan button, kemudian menambahkan properti click di dalamnya. Anda bisa lihat kode di bawah ini untuk jelasnya
 
<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
}
Untuk pengaturan lain , kita bisa cek di dokumentasinya di https://docs.avaloniaui.net/docs/reference/controls/window#common-properties