Xamarin.Forms
Experimentalですが,OSのLightテーマ,Darkテーマの切り替えに応じてUIの見た目を切り替える仕組みが提供されています. それがOnAppThemeマークアップ拡張です. 以下のように記述することで,OSのLightテーマ,Darkテーマに応じて,それぞれに指定した値が適用さ…
docs.microsoft.com www.youtube.com アプリケーション内で使用する値やStyleなどをResourceDictionaryに定義しておき,StaticResourceとして使用することはよくあります. <Color x:Key="PrimaryColor">#547799</Color> ... <Label TextColor="{StaticResource PrimaryColor}"/> このResourceの値はプログラム中で変更することができます. App.Current</label>…
今回やりたいのは,カメラで撮影した画像からテキストを抽出するもの. 参考は, github.com アプリ内でカメラを使って,撮影し,画像データを取得するには. MontemagnoさんのMediaPluginを使っている. カメラの使い方(Android) カメラを使って画像を取得するため…
以下のサンプルアプリを実行したとき,Entryの見た目と挙動が違っていたので,どういう仕組なのか色々調べた結果. github.com どんな挙動かというと以下のとおり. Entryに背景色がついていて,focusが当たると色が変わる. これはVisual="Material"としただけで…
docs.microsoft.com devblogs.microsoft.com iOSとAndroidで可能な限り同じマテリアルデザインの見た目に統一することができる. これまではそれぞれネイティブのコントロールをそのまま使っていたところを,見た目を統一できる,かつデザインを新し目のものに…
FlyoutItemの各アイテムの背景色,フォントカラーなどを変更したい場合は以下のような定義をShell.Resources内に定義する. <Style ApplyToDerivedTypes="True" Class="FlyoutItemLayoutStyle" TargetType="Layout"> <Setter Property="HeightRequest" Value="44" /> <Setter TargetName="FlyoutItemLabel" Property="Label.FontSize" Value="16" /> </setter></setter>
参考 https://xamgirl.com/adjusting-elements-when-keyboard-shows-in-xamarin-forms ソフトキーボード表示時のデフォルトの動作 Entryにフォーカスが移動すると,ソフトウェアキーボードが表示されます. このとき,選択されたEntryが隠れないようにソフトウ…
github.com SharpnadoのGitHubリポジトリにあるサンプル動画でわかるように,このライブラリが提供する機能の一つとしてリスト状に表示した各アイテムをドラッグアンドドロップで位置を入れ替えることができるHorizontalListViewというコントロールがあります…
https://blog.verslu.is/xamarin/xamarin-forms-xamarin/databinding-scope-in-xamarin-forms/?utm_source=rss&utm_medium=rss&utm_campaign=databinding-scope-in-xamarin-forms MVVMパターンでアプリケーションを作っている場合,イベントに対する処理をVie…
Xamarin.Forms 4.5からEmbedded Fontsというプレビュー版の機能があって,これはどういうものかというと,これまでフォントを追加する場合は各プラットフォームのプロジェクト内にフォントファイルを配置する必要がありましたが,フォントファイルを共有プロジ…
UIのアニメーションについていくつか記事をかきました. shuhelohelo.hatenablog.com 今回作ったのはボタンを押すと,その周りに複数のボタンが表示される,たまに見るやつです. アニメーション自体はScaleTo,FadeTo,TranslateToの3つを組み合わせた簡単なもの…
どういうことかというと,画面の表面に透明なレイヤーを設けて,そこにメッセージを重ねるといった表現をしたい場合,上(表)のレイヤーがユーザーの操作を拾うため,下のレイヤーのコントロールを操作できません. 例えば以下のようにテキストボックスやボタンを…
ある変数があって,それは例えばスクロールの位置だったり,増減する数値を格納されるものとする. で,ある値以上または以下に値が行かないようにしたい,つまり下限や上限を決めたいとする. このとき,値が変化するたびに発生するイベントを利用し,イベントハン…
docs.microsoft.com Labelに収まらない文字列を「...」で省略する3種類のTruncationがとても便利. <StackLayout> <Frame HorizontalOptions="Center" VerticalOptions="Center" WidthRequest="200"> <Label Text="何も指定しない場合は,テキストは折り返される." /> </Frame> <Frame HorizontalOptions="Center" VerticalOptions="Center" WidthRequest="200"> </frame></stacklayout>
CSSと同様に,コントロールの見た目を予め定義し,それを各コントロールに指定することで,見た目を変更することができます. 基本的にはResourceDictionaryにStyleとして定義して使用します. これによって同じ見た目の定義を1回行うだけで,同じ見た目のコントロ…
Setting the NavigationBar colors in Xamarin.Formstheconfuzedsourcecode.wordpress.com NavigationPageのBarBackgroundColorとBarTextColorというプロパティで変更することができます. 指定の方法は,C#であればApp.xaml.csでNavigationPageをインス…
追記 この記事はNavigationPageを使う場合には有効だけれども,Shellを使う場合は有効ではない. ShellのNavigationBarの色を変更するには以下の記事にあるように,Android側のMainActivity.csでWindow.SetStatusBarColor(Android.Graphics.Color.Argb(255, 44,…
Xamarin.Formsのコントロールには拡大・縮小,回転,フェードイン・アウトなど基本的なアニメーションのためのメソッドが用意されています. もちろん,Scale,Rotation,Opacityなどのプロパティの値を直接操作することもできます. shuhelohelo.hatenablog.com さて…
Xamarin.Formsで上下スクロールに合わせてナビゲーションバーを表示,非表示させる方法について書きました. shuhelohelo.hatenablog.com この記事ではフラグやスクロールの値を保持して,それらを使ってIf文で処理を分けて作りました. グローバル変数やIf文が…
Xamarin.Formsでフォントを変更する手順は以下の公式ドキュメントのとおりです. docs.microsoft.com フォントを入手する 使いたいフォントのデータを取得します. 公式ドキュメントでは例としてGoogle Fontsを挙げています. fonts.google.com こちらから使い…
Xamarin.Forms 4.6 pre1の時点でExperimentalな機能は以下のリンクで確認できます. docs.microsoft.com Shell_UWP_Experimental IndicatorView_Experimental SwipeView_Experimental CarouselView_Experimental MediaElement_Experimental StateTriggers_Exp…
docs.microsoft.com メンバー iOS Android UWP Default 16 14 14 Micro 11 10 15.667 Small 13 14 18.667 Medium 16 17 22.667 Large 20 22 32 Body 17 16 14 Header 17 96 46 Title 28 24 24 Subtitle 22 16 20 Caption 12 12 12
ShellやNavigationのナビゲーションバーを直接動かすことはできないので,Frameコントロールでナビゲーションバーにあたるものを配置して,ということです. さて,モバイルアプリは上下にスクロールして使うUIが多いです. 上部にナビゲーションバーがあって,そ…
各ページのContentPage要素の属性にNavigationPage.HasNavigationBar="False"を追加する.
追記(2020/04/12 各プロジェクトにフラグをセットする必要はなく,App.xaml.csのコンストラクタに以下のように記述すればOkになりました. public App() { InitializeComponent(); Xamarin.Forms.Device.SetFlags(new List<string>() { "StateTriggers_Experimental", </string>…
Shellを使う準備については以下の記事を参照. shuhelohelo.hatenablog.com 上の記事とかぶる内容もある. 環境 Xamarin.Forms 4.5 アップデートによって使える機能,設定が異なるので注意. 例えばShellのPresentationMode属性はXamarin.Forms 4.3にはなかった…
Xamrin.Formsの画面遷移にはページ遷移とモーダルページの表示がある. ページ遷移 ページ遷移は以下のように記述する. private async void Button_Clicked_1(object sender, EventArgs e) { await Navigation.PushAsync(new SecondPage()); } ページ遷移のア…
例1:ライブラリ無しでピュアなXamarin.Formsで実現する 以下の例ではライブラリを使用せずに,PCLで,XamlとC#で,ドノーマルのXamarin.Formsでカスタムダイアログ,カスタムメッセージボックスを表示させている. winstongubantes.blogspot.com 手法としては,ダ…
VisualStateManager docs.microsoft.com Visual State Manager(VSM)はコントロールの見た目を予め数種類定義しておき,それを切り替えることができるようにする機能です. VSMにはデフォルトの定義があり,それはCommonStatesというグループ名で定義されている.…
Syncfusionはアプリケーションのための様々なコンポーネントを提供している企業です. .NETだけでなくJavaScriptやflutter,Vue,Reactなど多くのプラットフォームのコントロールを取り揃えています. おしゃれなコントロールを作ることはデザイン的にも実装技術…