shuhelohelo’s blog

Xamarin.Forms多めです.

Xamarin.Forms

Xamarin.FormsでEntityFramework CoreとSQLiteを使うチュートリアル メモ

www.youtube.com github.com 空のXamarin.Formsアプリを作成 Sqliteを使ってDBを操作するためのクラスを作成 .net standardクラスライブラリとして作成する. EntityFramework Coreはクロスプラットフォームで使えるため. Microsoft.EntityFrameworkCore.Sqli…

Xamarin.Formsでアプリケーションのデータ保存先はどこがいい?

結論としては共有プロジェクト側でSpecialFolder.LocalApplicationDataを使えばいい気がしてきた. アプリケーションがデータを保存する先はどのディレクトリにしたらいいのだろうか? 各プラットフォームごとに異なるディレクトリを指定しなければならないの…

Xamarin.FormsでTwitterのフォローリストを模写する

既存のアプリのUIを模写するのはとても良い勉強になります. 今回はListViewの練習としてAndroidのTwitterアプリのフォローリストを模写してみたいと思います. 目標 Twitterアプリのフォロー中のリストを表示するとこういったリストが表示されると思います. …

吹き出しコントロールの作り方

github.com 吹き出しコントロールはFrame(吹き出し本体部分)とSkiaSharp(吹き出しの口部分)の組み合わせで作ることができる. Gridの中にSkiaSharpのキャンバスとFrameを重ね合わせて置くことで,吹き出しの見た目を作っている. これをカスタムコントロールと…

カスタムコントロールにバインダブルなFontSizeプロパティを設ける方法

forums.xamarin.com LabelなどのFontSizeは数字でもLarge,SmallなどのNamedSize列挙体の値でもどちらでも大丈夫です. ではそれをカスタムコントロールのプロパティでNamedSize列挙体を使うためにはどうしたらいいのか. 以下のようにする. //https://github.c…

Xamarin.FormsでINotifyPropertyChangedの実装方法メモ

qiita.com こちら↑の記事にとてもよくまとまっている. ここでは,基本的な実装の形をメモとして残す. public class Message : INotifyPropertyChanged { private string _text; public string Text { get => _text; set { _text = value; OnPropertyChanged(n…

A project cannot have more than one ApplicationXaml itemエラーの対処法

[Xamarin.UWP] A project cannot have more than one ApplicationXaml item プロジェクトをCleanまたはRebuild.

ListViewの中でBindingContext内の他のプロパティをバインディングするには

docs.microsoft.com 例えば以下のように,ListView(CollectionView,CarouselViewなど)にバインディングするListとその他のプロパティがあるとします. public partial class MainPage : ContentPage { public int ImageWidth { get; set; } public int ImageHe…

DataBindingの注意点

プロパティの変更通知における基本をメモしておく. 例えば以下のプロパティがあったとする. private string _firstName; public string FirstName { get => _firstName; set { if(_firstName==value) { return; } _firstName = value; OnPropertyChanged(nam…

ListViewの項目に対して異なるテンプレートを適用する

ListViewやCollectionViewといったコレクションをリスト表示する系のコントロールは,各項目の見た目をDataTemplateで定義します. これによって好きな各項目を任意の見た目で表示することができます. このDataTemplateによる見た目の指定はシンプルに使えばす…

ハローCarouselView

更新 2020/03/12に,Xamarin.Forms 4.6 pre1に更新. 環境 Xamarin.Forms 4.6 preview 1 はじめに CarouselViewを使うためには明示的に使用を許可しなければならない. まだExperimentalというこのようです. : 'The class, property, or method you are attempt…

丸い画像の回りに枠線を作る

Frameを二重にして重ね合わせることで枠線があるように見せることができます. <Frame Padding="4" BackgroundColor="White" CornerRadius="60" HasShadow="False" HorizontalOptions="Center" IsClippedToBounds="True" VerticalOptions="Center"> </frame>

Xamarin.Formsで画像を丸く表示する2

以前に丸い画像を表示する方法としてImageCircleというライブラリを使う方法を紹介しました. shuhelohelo.hatenablog.com 他の方法としてFrameを使う方法があり,今回はそれの紹介です. montemagno.com FrameにはCornerRadiusというプロパティがあり,角を丸く…

画像を表示させたい領域にフィットさせるための基礎知識

mattsudev.hatenablog.com Xamarin.Formsで画像をタイル状に表示させるときに,各タイルに余白が生まれてしまうので,ちょっと調べてメモ. 上記のブログがとてもわかり易かったです. Aspectとは縦横比のこと. 目的はこの縦横比を維持したまま,もちろん画像は切…

Xamarin.Formsで「いいね」的なボタンを押したときにピョコンとアニメーションさせる

Xamarin.FormsではUIコントロールにシンプルなアニメーションをつけることができます.という記事を以前にかきました. shuhelohelo.hatenablog.com シンプルとはいえ,これらを組み合わせることでそれっぽいおしゃれな動きをさせることができます. 今回はよく…

表示するパーツのサイズが決まったときのイベント

Xamarin.Fomrsで. 描画される前にUIコントロールの状態を変更しておきたい時がある. そういうときはOnSizeAllocatedメソッドをオーバーライドする. これはページ内のUIコントロールのサイズが決定されたときに呼ばれる. どうやらこの時点でページだけでなく,…

Button以外にタップやスワイプといったユーザー操作に対するイベントハンドラを設定する

LabelやImageなどのコントロールはButtonと違ってユーザー操作に対するイベントが設けられていません. これらのコントロールに対してユーザー操作に対するイベントハンドラを設定するには,GestureRecognizersを使います. 例えばImageコントロールに対してタ…

Xamarin.Formsのナビゲーション

docs.microsoft.com ナビゲーションは,以下のようにページをスタックに積み上げている(Push). 戻るときはそのスタックを上から1つずつ取り除く(Pop)していく. これがナビゲーションスタック. ナビゲーションを使うには,App.xaml.csでMainPageにNavigationPag…

Xamarin.Formsで丸い画像を表示する

www.c-sharpcorner.com おしゃれなUIに丸い画像は欠かせません.丸くするだけでオシャレ度はぐぐっと上がります. 特にユーザーのアバター画像は丸いのが必須です. しかしながら,Xamarin.FormsのImageにはCornerRadiusといった角を丸めるプロパティは存在しな…

Commandを使って非同期メソッドを実行する

WPFやXamarin.FormsなどXAMLを使用するアプリケーションの場合,ビューとロジックを分離するためにCommandを使ったりします. 一般的な書き方は以下のとおりです. (注意:RefreshCommand = new Command(ExecuteRefreshCommand);はthis.BindingContext = this;よ…

Xamarin.FormsのShellを一から使ってみる

docs.microsoft.com 環境 Visual Studio 2019 16.4 preview Xamarin.Forms 4.3 preview Shellってどんなコントロール? 横から出てくるメニューが特徴的なUIコントロール.その他にもサーチバーやタブといった機能が統合されている. それぞれのページが同列の…

アバターを自動生成してくれるサービス

海外のアニメっぽいアバター画像を自動生成してくれるサービス. アプリケーションの作成でサンプルのアバター画像が必要になることが多いのでかなり役に立ちます. robohash.org https://robohash.org/の後に適当な文字列(本当になんでもいい)を指定すると,画…

Xamarin.FormsのListViewのアイテム(セル)の見た目を変更する

docs.microsoft.com ListViewの行の見た目を変更するにはListView.ItemTemplateの中にDataTemplateを配置し,またその中にViewCellを配置する. このViewCellの中にコントロールを配置すれば良い. <ListView ItemsSource="{Binding People}" HasUnevenRows="True"> <ListView.ItemTemplate> <DataTemplate> <ViewCell> ...ここ! </ViewCell> </DataTemplate> </listview.itemtemplate></listview>

Xamarin.FormsでUIのアニメーション

youtu.be Xamarin.Formsにはコントロールをアニメーションさせるシンプルなメソッドが用意されています. アニメーションの種類 UIコントロールのアニメーションには以下の種類があります. docs.microsoft.com FadeTo 透明度を上げたり下げたりする LayoutTo …

XAMLからクラスのStaticプロパティにアクセスする方法

docs.microsoft.com マークアップ拡張のx:staticを使うとクラスのStaticプロパティにアクセスできる. 例えば,こんなクラスを定義しておく. public class SharedSources2 { public static string MyTestProperty2 => "Hello World"; } そして,XAML側では最上…

XamarinでCommandにパラメータを渡す

複数のボタンを同じCommandにバインディングし,どのボタンが押されたのかをパラメータで区別したいときがある. その場合はコマンドにCommand型のインスタンスを以下のようにして渡す. public ICommand SendMessageCommand { get; } public MainPageViewModel…

Xamarin.Formsでカスタムコントロールを作る

www.matatabi-ux.com www.mfractor.com 複数のコントロールを組み合わせて一つのコントロールとしてまとめたい,とかいった標準コントロールにない見た目や動作をするコントロールを作りたい場合に,カスタムコントロールの出番です. きっと色々と複雑なことが…

Xamarin.Formsのカスタムコントロールのプレビューを有効にする

docs.microsoft.com デフォルトだとカスタムコントロールはデザイナに描画されない. カスタムコントロールに以下のように [DesignTimeVisible(true)]属性をつけるとビルド後に描画されるようになる. namespace MyProject { [DesignTimeVisible(true)] public…

Xamarin.FormsのPrismソリューションにUWPプロジェクトを追加する[引越記事]

Xamarin.FormsでPrismを使ってAndroid限定のアプリを作っていたのですが、手持ちのWindows10Mobile端末でも使えるようにしたいと思い、UWPプロジェクトを追加することにしました。 参考にしたのはstackoverflowのこちらのスレッドです。 Prismではない通常の…

XamlでCommand属性がない要素にCommanをバインドするには

EventToCommandBehaviordocs.microsoft.com イベントが発生したときにこのBehaviorを使用してコマンドを実行することの利点は,コマンドとやり取りするように設計されえていないコントロールにコマンドを関連付けできることです. このコマンドとやりとりする…