Avaloniaの習熟情報・Tips
#Avalonia #技術情報
参考資料
本家ドキュメント
https://docs.avaloniaui.net/
UIライブラリとしての特徴・比較
https://heri3x.hatenablog.com/entry/2020/09/17/121852
拡張ライブラリ
https://www.wenyanet.com/opensource/ja/5fec116b3a69fe64362417eb.html
Tips・個々パーツの使い方、等
Styling
https://zenn.dev/t13801206/articles/2203-avalonia-comparison-style
MVVM
https://docs.avaloniaui.net/docs/getting-started/programming-with-avalonia/the-model-view-viewmodel-pattern-mvvm
ComboBoxの制御
https://stackoverflow.com/questions/8666256/how-to-handle-the-selectionchanged-event-of-combobox-with-mvvm-in-wpf
DatePickerの使い方
DateTimeOffset? 型を使うこと
https://docs.avaloniaui.net/docs/controls/datepicker
https://gitter.im/AvaloniaUI/Avalonia?at=60316dab4c79215749fc40cf
https://docs.microsoft.com/en-us/dotnet/standard/datetime/choosing-between-datetime#the-datetimeoffset-structure
https://stackoverflow.com/questions/50159705/getting-datapicker-value-mvvm
TextBox
「アルファベットと数値」など、入力制限をする方法
結局片付いてない
参考
https://stackoverflow.com/questions/8321871/how-to-make-a-textbox-accept-only-alphabetic-characters
ViewModelに変更があったら、それを起点にボタン等を有効にしたりする
code:c#
public XxxViewModel()
{
this.PropertyChanged += ThisPropertyChanged;
}
private void ThisPropertyChanged(object? sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == "Commitable") return;
Commitable = Validateion();
}
code:xml
Xxx.axaml
<Button IsEnabled="{Binding Commitable}">OK</Button>
を参考に
WindowsとLinuxの挙動の違い
https://github.com/kazuhito-m/ConnpassAutomatorAvaloniaUI/issues/4
「内蔵フォント」を使いたい場合
https://github.com/kazuhito-m/ConnpassAutomatorAvaloniaUI/issues/1#issuecomment-1115013253 の おそらくは「フォント内蔵」を実現したソース を参照
「UI全体のフォントを唯一に固定」したい場合
https://github.com/kazuhito-m/ConnpassAutomatorAvaloniaUI/issues/1#issuecomment-1115013253 の 「全体デフォルトフォント」の設定方法 を参照
VSCodeの「Avaloniaを楽にしてくれる拡張」系
https://marketplace.visualstudio.com/items?itemName=PrzemyslawOnak.pimp-my-avalonia