shuhelohelo’s blog

Xamarin.Forms多めです.

UI

Xamarin.FormsでScaleとRotationの中心を設定する

Xamarin.Formsのコントロールには拡大・縮小,回転,フェードイン・アウトなど基本的なアニメーションのためのメソッドが用意されています. もちろん,Scale,Rotation,Opacityなどのプロパティの値を直接操作することもできます. shuhelohelo.hatenablog.com さて…

Xamarin.Formsで上下スクロールにあわせてナビゲーションバーを表示・非表示

ShellやNavigationのナビゲーションバーを直接動かすことはできないので,Frameコントロールでナビゲーションバーにあたるものを配置して,ということです. さて,モバイルアプリは上下にスクロールして使うUIが多いです. 上部にナビゲーションバーがあって,そ…

Xamarin.FormsでNavigationPageのナビゲーションバーを非表示にする

各ページのContentPage要素の属性にNavigationPage.HasNavigationBar="False"を追加する.

Xamarin.Formsでプレビュー(Experimentalな)機能を使うためのフラグ指定

追記(2020/04/12 各プロジェクトにフラグをセットする必要はなく,App.xaml.csのコンストラクタに以下のように記述すればOkになりました. public App() { InitializeComponent(); Xamarin.Forms.Device.SetFlags(new List<string>() { "StateTriggers_Experimental", </string>…

Xamarin.FormsのShellのFlyoutItem,Tabについてメモ

Shellを使う準備については以下の記事を参照. shuhelohelo.hatenablog.com 上の記事とかぶる内容もある. 環境 Xamarin.Forms 4.5 アップデートによって使える機能,設定が異なるので注意. 例えばShellのPresentationMode属性はXamarin.Forms 4.3にはなかった…

Xamarin.Formsの画面遷移のアニメーションの種類

Xamrin.Formsの画面遷移にはページ遷移とモーダルページの表示がある. ページ遷移 ページ遷移は以下のように記述する. private async void Button_Clicked_1(object sender, EventArgs e) { await Navigation.PushAsync(new SecondPage()); } ページ遷移のア…

Xamarin.Formsでオーバーレイしてダイアログ(というかページ)を表示させるにはどうしたらいいの?

例1:ライブラリ無しでピュアなXamarin.Formsで実現する 以下の例ではライブラリを使用せずに,PCLで,XamlとC#で,ドノーマルのXamarin.Formsでカスタムダイアログ,カスタムメッセージボックスを表示させている. winstongubantes.blogspot.com 手法としては,ダ…

Xamarin.FormsのVisualStateManagerについてのメモ

VisualStateManager docs.microsoft.com Visual State Manager(VSM)はコントロールの見た目を予め数種類定義しておき,それを切り替えることができるようにする機能です. VSMにはデフォルトの定義があり,それはCommonStatesというグループ名で定義されている.…

Xamarin.FormsでSyncfusionのコントロールを使う

Syncfusionはアプリケーションのための様々なコンポーネントを提供している企業です. .NETだけでなくJavaScriptやflutter,Vue,Reactなど多くのプラットフォームのコントロールを取り揃えています. おしゃれなコントロールを作ることはデザイン的にも実装技術…

CollectionViewならVisual State Managerで選択時の背景色を変えられる

docs.microsoft.com CollectionViewであればDataTemplate直下のコンテナ要素の背景色をVisual State Managerで切り替えることで,アイテム選択時の背景色を変更できる. これは素晴らしい!プラットフォームごとに実装する必要がない.とても簡単. Styleのターゲ…

Xamarin.Formsでボタンを領域の縁に重ねる

shuhelohelo.hatenablog.com 上の記事のようにXamarin.Forms v4.3とv4.4以上ではFrameやGridといった領域の中のコントロールは,その領域の外側にははみ出さないように描画される,ようだ. とはいえ,コントロールの位置をずらして縁に重ねたりするのはおしゃれ…

Xamarin.FormsのBindableLayoutについて

Layoutに表示する項目(アイテム)のUIを統一したい場合に使います. Using Bindable Layouts with Xamarin.Forms Controls | Syncfusion Blogs ListViewでListItemに対してUIのテンプレートを適用して,全てのItemを同じ見た目にする,というのはよくやります. L…

Xamarin.FormsのCollectionViewの用途について考えてみた

shuhelohelo.hatenablog.com 上の記事で書いたようにXamarin.FormsのCollectionViewはListViewよりも機能が豊富かつ柔軟な表現ができます. アイテムを一つ一つ強制的に止めるSnapの機能がありますが,これを使えば漫画アプリビューワのように1ページずつめく…

Xamarin.FormsのCollectionViewについてメモ

環境 Xamarin.Forms 4.4 preview2 遅延ローディングが簡単にできる! などなど。 こりゃすごい. https://devblogs.microsoft.com/xamarin/5-quick-tips-for-collectionview/ CollectionView, CarouselViewなどXamarin.FormsのUIコントロールの便利な機能を紹…

Xamarin.Formsでコントロールのサイズを縦横比で指定する

コントロールのサイズを縦,横それぞれにピクセルの値を指定するのではなく,縦を決めれば自動的に横が縦の2分の1のサイズになるようにしたい,と思いました.例えばです. 名刺と同じ縦横比のカード風コントロールを作成するとします. 日本の名刺の一般的なサイ…

Xamarin.FormsでEntryコントロールのカーソル関連の色を変える方法

カスタムレンダラーから変更する方法がよくわからなかった. stackoverflow.com ↑の記事によると,カスタムレンダラに追加すれば良いとのこと. IntPtr IntPtrtextViewClass = JNIEnv.FindClass(typeof(TextView)); IntPtr mCursorDrawableResProperty = JNIEnv…

Entryの下線部の色を変える

Entryコントロールのカーソルの色を変えたいのだけれど,その途中で見つけたEntryコントロールの下線部の色を変更する方法. kotaeta.com カスタムレンダラーで変更する.Custom Renerer Android. [assembly: ExportRenderer(typeof(Entry), typeof(MyEntryRend…

これは下書きにもタグを登録するためのページです。

自作アプリのUIを改善する2

shuhelohelo.hatenablog.com 前回の続き. 今回はリスト表示のページ. 元 極めてダサい. ボタンに影をつけてハイライトカラーをつけた リストアイテムを影付きフレームにした ださいな... 飾りのハイライトカラーをつけた フォントサイズも変えた. アイコンを…

自作アプリのUIを改善する1

これは座標を指定するとそこまでの方角と距離を表示する自作アプリです. このUIを少しでも今風にしたいと思います. ダークモードのことなど考えず,白を貴重に角を若干丸くしたカード風UIを多様していけば自ずとおしゃれになるのではないかと甘く考えています…

意外と知られていないXamarin.Formsのプロパティ,イベントなど

https://xamgirl.com/awesome-xamarin-forms-properties-that-you-probably-didnt-know-about/ カスタムレンダラーを作るなど各プラットフォームのコードを編集することなくできる,実はこんなこともできる,という内容のTips集. ボタンに影をつける iPadのモ…

Xamarin.FormsでFrameに調整可能な影をつける方法

こちらの記事がまさにピッタリのものだった.素晴らしい.ありがとうございます. alexdunn.org 現時点ではこれがベストかな. カスタムレンダラーを使う. Frameを継承したShadowFrameクラスを作る. Elevationプロパティを追加する.バインディング可能にしておい…

Xamarin.Formsでアイコンフォントを使えるようにする

アイコンフォントとは アイコンのWebフォントです.フォントなのでテキストと同じようにサイズや色を変えることができます. (雑) 上記のサイトを参考にしてアイコンフォントをXamarin.Formsで使えるようにします. フォントの入手 以下のサイトからアイコンフ…

フォントを取得するサイト:メモ

fontello.com FontelloではFont Awesomeをはじめとしていくつかの種類のフォントをダウンロードできる. とても便利.

Xamarin.FormsでStackLayoutの背景グラデーション:メモ

qiita.com forums.xamarin.com こちらの動画の中のデモアプリケーションでもShellのドロワーっていうのかな,左から出てくるメニューの背景でグラデーションが使われている. www.youtube.com 背景にグラデーションをつけるにはカスタムレンダラーを使う必要が…

Xamarin.FormsでAndroidアプリのButtonのテキストが強制的に大文字なるのを無効にする

xamarin forms uppercase text&nbsp;problemridablogging.wordpress.com AndroidアプリのButtonはデフォルトでは例えTextプロパティに小文字で設定したとしても,大文字で表示されます. これを設定したとおりに表示したい場合,以下の設定が必要です. まず,And…

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…

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

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