{"id":20272899,"url":"https://github.com/muak/aiforms.effects","last_synced_at":"2025-04-12T15:38:02.128Z","repository":{"id":60773143,"uuid":"74570531","full_name":"muak/AiForms.Effects","owner":"muak","description":"AiForms.Effects for Xamarin.Forms","archived":false,"fork":false,"pushed_at":"2024-07-24T03:58:11.000Z","size":8621,"stargazers_count":242,"open_issues_count":8,"forks_count":27,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-04-03T14:13:25.325Z","etag":null,"topics":["android","border","command","date-pikcer","flat-button","flatbutton","floating-view","ios","line-height","line-spacing","number-picker","placeholder","size-to-fit","time-picker","touch-events","touch-feedback","validation","xamarin","xamarin-forms"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/muak.png","metadata":{"files":{"readme":"README-ja.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["muak"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2016-11-23T11:31:54.000Z","updated_at":"2025-03-18T11:20:13.000Z","dependencies_parsed_at":"2024-11-21T13:02:36.260Z","dependency_job_id":"59b3395b-3d35-4018-92a3-970a71eca790","html_url":"https://github.com/muak/AiForms.Effects","commit_stats":{"total_commits":107,"total_committers":7,"mean_commits":"15.285714285714286","dds":0.5514018691588785,"last_synced_commit":"24599633682340e7bbe0637c428b727182b08188"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muak%2FAiForms.Effects","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muak%2FAiForms.Effects/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muak%2FAiForms.Effects/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muak%2FAiForms.Effects/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muak","download_url":"https://codeload.github.com/muak/AiForms.Effects/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248590558,"owners_count":21129846,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","border","command","date-pikcer","flat-button","flatbutton","floating-view","ios","line-height","line-spacing","number-picker","placeholder","size-to-fit","time-picker","touch-events","touch-feedback","validation","xamarin","xamarin-forms"],"created_at":"2024-11-14T12:47:25.242Z","updated_at":"2025-04-12T15:38:02.089Z","avatar_url":"https://github.com/muak.png","language":"C#","readme":"# AiForms.Effects for Xamarin.Forms\n\nAiForms.Effect は Android と iOS に特化することにより、標準のコントロールをより便利にするための機能を提供する Xamarin.Forms の Effectsライブラリです。\n\n![Build status](https://kamusoft.visualstudio.com/NugetCI/_apis/build/status/AiForms.Effects)\n\n## 機能\n* [Gradient](#gradient)\n  * グラデーション背景を設定する。\n* [Floating](#floating)\n    * ページの前面の任意の場所に複数のフローティングな要素(FABなど)を配置する。\n* [Feedback](#feedback)\n    * タッチフィードバック効果（色やシステム音）を追加。コマンドは含まない。\n* [AddTouch](#addtouch)\n    * 各種タッチイベントを追加\n* [SizeToFit](#sizetofit)\n    * フォントサイズをLabelの大きさに調整\n* [Border](#border)\n    * 罫線の追加.\n* [ToFlatButton](#toflatbutton)\n\t* ボタンをフラットにする (Android)\n* [AddText](#addtext)\n\t* 1行テキストを任意のviewに追加\n* [AddCommand](#addcommand)\n    * コマンドを任意のviewに追加\n* [AddNumberPicker](#addnumberpicker)\n    * NumberPicker 機能を任意のviewに追加\n* [AddTimePicker](#addtimepicker)\n\t* TimePicker 機能を任意のviewに追加\n* [AddDatePicker](#adddatepicker)\n\t* DatePicker 機能を任意のviewに追加\n* [AlterLineHeight](#alterlineheight)\n    * LabelとEditorの行の高さを変更\n* [AlterColor](#altercolor)\n\t* 通常変えられない箇所の色を変える\n* [Placeholder](#placeholder)\n\t* Editor に Placeholder を追加.\n\n## **トリガープロパティ (1.4.0~)**\n\nEffectのOn・OffはそれぞれのOnプロパティで操作していましたが、ver.1.4.0よりEffectの主要なプロパティを設定するだけで起動できるようになりました。\nこのプロパティはトリガープロパティとします。\n例えば、AddCommandの場合は Command や LongCommand がトリガープロパティになります。このドキュメントに該当のプロパティには trigger と記載しています。\n\n### 旧 (~1.3.1)\n\n```xml\n\u003cLabel Text=\"Text\" ef:AddCommand.On=\"true\" ef:AddCommand.Command=\"{Binding GoCommand}\" /\u003e\n```\n必ずOnの指定が必要。\n\n### 新 (1.4.0~)\n\n```xml\n\u003cLabel Text=\"Text\" ef:AddCommand.Command=\"{Binding GoCommand}\" /\u003e\n```\n\nTrigger Propertyを指定していれば On は不要。\n\n### 旧方式のままを保つには\n\nOnプロパティを使用して動的にEffectの有効無効を切り替えて使用していた場合は、Trigger Property方式だとうまく動作しなくなる可能性があります。\n従来の動きのままにする場合は .NETStandard プロジェクトの任意の場所に以下のように記述することで無効化できます。\n\n```csharp\nAiForms.Effects.EffectConfig.EnableTriggerProperty = false;\n```\n\n## 動作条件など\n\niOS:iPhone5s,iPod touch6,iOS9.3  \nAndroid:version 5.1.1 (only FormsAppcompatActivity) / API22\n\n## Nuget インストール\n\n```bash\nInstall-Package AiForms.Effects\n```\n\n共有プロジェクト（PCL / .NETStandard）と各プラットフォームのプロジェクトにそれぞれインストールする必要があります。\n\n### iOS プロジェクト\n\niOSで使用するために、AppDelegate.csに以下のようなコードの追加が必要です。\n\n```csharp\npublic override bool FinishedLaunching(UIApplication app, NSDictionary options) {\n    \n    global::Xamarin.Forms.Forms.Init();\n    AiForms.Effects.iOS.Effects.Init();  //need to write here\n\n    return base.FinishedLaunching(app, options);\n}\n```\n\n### Android プロジェクト\n\nMainActivity.cs に以下のようなコードを追記します。\n\n```csharp\nprotected override void OnCreate(Bundle bundle) {\n            \n    base.OnCreate(bundle);\n\n    global::Xamarin.Forms.Forms.Init(this, bundle);\n    AiForms.Effects.Droid.Effects.Init(); //need to write here\n    ...\n}\n```\n\n## Gradient\n\n任意のレイアウト要素にグラデーション効果をつけるEffectです。\nレイアウト以外のコントロールにも使用できますが、完全ではありません。\n\n### Properties\n\n* On\n\t* Effect On/Off (true is On)\n* Colors (trigger)\n\t* グラデーションに使う色を設定します。\n\t* Xamlではカンマ区切りで複数設定でき、順番にグラデーションに適用されます。\n\t* c# では GradientColorsクラスのインスタンスを指定します。\n* Orientation\n\t* グラデーションの方向を指定します。\n\t* 8方向の指定が可能です。\n\n### 使い方\n\n```xml\n\u003cContentView \n    ef:Gradient.Colors=\"Red,Yellow,#800000FF\"\n    ef:Gradient.Orientation=\"RightLeft\"\t\u003e\n    \u003cLabel Text=\"Abc\" /\u003e\t\t\t\n\u003c/ContentView\u003e\n```\n\n## Floating\n\nページの上の任意の場所に複数のフローティングView (Floating Action Buttonなど) を配置するEffectです。\n配置されは要素はContentPageより前面に表示され、ContentPageのスクロールの影響を受けません。\n\n### 使い方\n\nこのサンプルでは、垂直下端から上に25dp、水平右端から左に25dpの位置に配置しています。\n\n```xml\n\u003cContentPage xmlns:ef=\"clr-namespace:AiForms.Effects;assembly=AiForms.Effects\"\u003e\n    \n    \u003cef:Floating.Content\u003e\n        \u003cef:FloatingLayout\u003e\n            \u003c!-- 右下から上に25dp 左に25dp --\u003e\n            \u003cef:FloatingView \n                VerticalLayoutAlignment=\"End\" \n                HorizontalLayoutAlignment=\"End\"\n                OffsetX=\"-25\" OffsetY=\"-25\" \u003e\n                 \u003c!-- Code behindのハンドラ指定やViewModelのBindingも可能 --\u003e\n                 \u003cButton Clicked=\"BlueTap\" BackgroundColor=\"{Binding ButtonColor}\" \n                         BorderRadius=\"28\" WidthRequest=\"56\" HeightRequest=\"56\" \n                         Text=\"+\" FontSize=\"24\"\n                         TextColor=\"White\" Padding=\"0\" /\u003e\n            \u003c/ef:FloatingView\u003e\n        \u003c/ef:FloatingLayout\u003e\n    \u003c/ef:Floating.Content\u003e\n\n    \u003cStackLayout\u003e\n        \u003cLabel Text=\"MainContents\" /\u003e\n    \u003c/StackLayout\u003e\n\u003c/ContentPage\u003e\n```\n\n\u003cimg src=\"images/floating.jpg\" width=\"600\" /\u003e \n\n### Property\n\n* Content (trigger)\n    * FloatingViewを配置するためのルート要素で FloatingLayoutクラスです。\n\n### FloatingLayout\n\nページ上に複数のFloatingViewを自由に配置できるレイアウト要素です。\n\n### FloatingView\n\nFloatingLayoutによって配置される要素です。\nこのViewは、HorizontalLayoutAlignment, VerticalLayoutAlignment, OffsetX, OffsetX を指定して自身の位置を決めるために使用します。\nこのViewの子要素には任意のVisualElementを配置できます。\n\n#### Properties\n\n* HorizontalLayoutAlignment (defalut: Center)\n    * 水平方向の位置の列挙値 (Start / Center / End / Fill)\n* VerticalLayoutAlignment (defalut: Center)\n    * 垂直方向の位置の列挙値 (Start / Center / End / Fill)\n* OffsetX\n    * 水平方向の位置の調整値。HorizontalLayoutAlignmentからの相対値を指定します。(Fillの場合は無効)\n* OffsetY\n    * 垂直方向の位置の調整値。VerticalLayoutAlignmentからの相対値を指定します。(Fillの場合は無効)\n* Hidden\n    * Viewを表示するか非表示にするかのbool値。\n    * AndroidでIsVisibleがfalseの状態でページを表示すると、それ以降falseにした要素をtrueにしても表示されなくなる問題があり、それを回避するためのプロパティです。もしIsVisibleで問題がある場合はこちらを使用してください。\n    * 内部でOpacityとInputTransparentプロパティを利用しています。\n\n## Feedback\n\nこれは任意のviewにタッチフィードバック（押した感）を追加するEffectで、以前のバージョンでAddCommandに含まれていた機能を独立させたものです。\nこのeffectは他のeffect （例えば AddNumberPickerやAddDatePickerなど）と同時に使用することができます。\nただし、AddCommandには既にこの機能が含まれているため併用することはできません。\n\n### Properties\n\n* EffectColor (trigger)\n    * タッチフィードバックの色。 (default: transparent)\n* EnableSound (trigger)\n    * タッチフィードバックのシステム音。 (default: false)\n\n## AddTouch\n\nこれはタッチイベント（begin, move, end, cancel）をviewに追加する Effect です。\nそれぞれのタッチイベントにはlocationプロパティが提供され、X・Y座標を取得できます。\n\n### Properties\n\n* On\n    * Effect On / Off\n\n\u003e このeffectには他にプロパティが存在しないため On プロパティで制御してください。\n\n### TouchRecognizer events\n\n* TouchBegin\n* TouchMove\n* TouchEnd\n* TouchCancel\n\n### Demo\n\nhttps://youtu.be/9zrVQcr_Oqo\n\n### 使い方\n\nこの Effect の使い方 は他のEffectと少し違っています。\nまず XAML で `On` 添付プロパティをコントロールにセットし、その値をtrueにします。\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cContentPage \n    ...\n    xmlns:ef=\"clr-namespace:AiForms.Effects;assembly=AiForms.Effects\"\u003e\n    \u003cStackLayout HeightRequest=\"300\" ef:AddTouch.On=\"true\" x:Name=\"container\" /\u003e\n\u003c/ContentPage\u003e\n```\n\nその後 コードビハインドで `AddTouch.GetRecognizer` メソッドを使って、`TouchRecognizer` を取得し、この recognizer を使ってそれぞれのタッチイベントをハンドルします。\n\n```cs\nvar recognizer = AddTouch.GetRecognizer(container);\n\nrecognizer.TouchBegin += (sender, e) =\u003e {\n    Debug.WriteLine(\"TouchBegin\");\n};\n\nrecognizer.TouchMove += (sender, e) =\u003e  {\n    Debug.WriteLine(\"TouchMove\");\n    Debug.WriteLine($\"X: {e.Location.X} Y:{e.Location.Y}\"); \n};\n\nrecognizer.TouchEnd += (sender, e) =\u003e {\n    Debug.WriteLine(\"TouchEnd\");\n};\n\nrecognizer.TouchCancel += (sender, e) =\u003e {\n    Debug.WriteLine(\"TouchCancel\");\n};\n```\n\n## SizeToFit\n\nこれは Labelの大きさに合わせてフォントサイズをフィットさせる Effect で、Label専用です。\n\n### Properties\n\n* On\n    * Effect On/Off (true is On)\n* CanExpand\n    * フィットさせるときにフォントサイズを拡大させるかどうか (Default true)\n    * falseの場合、フォントサイズは拡大はせず、縮小だけします。\n\n\u003e このeffectには他にプロパティが存在しないため On プロパティで制御してください。\n\n### Demo\n\nhttps://youtu.be/yMjcFOp38XE\n\n### Xamlでの使用法\n\n```xml\n\u003cContentPage \n\txmlns=\"http://xamarin.com/schemas/2014/forms\" \n\txmlns:x=\"http://schemas.microsoft.com/winfx/2009/xaml\" \n\txmlns:ef=\"clr-namespace:AiForms.Effects;assembly=AiForms.Effects\"\n\tx:Class=\"AiEffects.TestApp.Views.BorderPage\"\u003e\n\t\u003cLabel Text=\"LongText...\" ef:SizeToFit.On=\"true\" ef.SizeToFit.CanExpand=\"false\"\n\t\t\tHeightRequest=\"50\" Width=\"200\"  /\u003e\n\u003c/ContentPage\u003e\n```\n\n## Border\n\nこれは任意のviewに罫線を追加する Effect です。\nEntry・Picker・DatePicker・TimePickerはiOSではデフォルトで罫線を持っていますが、widthを0に指定することで罫線を非表示にすることができます。\n\n\u003cimg src=\"images/border_ios.gif\" /\u003e \u003cimg src=\"images/border_droid.gif\" /\u003e\n\n### Properties\n\n* On\n\t* Effect On/Off (true is On)\n* Width (trigger)\n\t* Border width (default null)\n* Color\n\t* Border color (default transparent)\n* Radius (trigger)\n\t* Border radius (default 0)\n\n### Xamlでの使用法\n\n```xml\n\u003cContentPage \n\txmlns=\"http://xamarin.com/schemas/2014/forms\" \n\txmlns:x=\"http://schemas.microsoft.com/winfx/2009/xaml\" \n\txmlns:ef=\"clr-namespace:AiForms.Effects;assembly=AiForms.Effects\"\n\tx:Class=\"AiEffects.TestApp.Views.BorderPage\"\u003e\n\t\u003cStackLayout Margin=\"4\" \n        ef:Border.Width=\"2\" ef:Border.Radius=\"6\" ef:Border.Color=\"Red\"\u003e\n\t\t\u003cLabel Text=\"hoge\" /\u003e\n        \u003cLabel Text=\"fuga\" /\u003e\n\t\u003c/StackLayout\u003e\n\u003c/ContentPage\u003e\n```\n\n### 制限事項\n\n* Android の Entry・Picker・DatePicker・TimePicker の 入力欄の下線は、この Effect を使うと非表示になります。\n* Android の Button では正しく表示されません。Buttonには [ToFlatButton](#toflatbutton)を使用してください。\n* Android の WebView・Frame・ScrollView は動作対象外です。\n* Android の ListView と TableView は罫線から背景がはみ出します。\n* AddCommand と同時に使用することは動作対象外です。\n\n## ToFlatButton\n\nこれは Android で Button をフラットに変える Effect です。\nこのEffectを使うことで、 iOSっぽいボタンデザインにすることができます。\nまたこのEffectは Android でButtonのプロパティの BorderRadius, BorderWidth, BorderColorを使用可能にします。\n\n\u003cimg src=\"images/toflat1.png\" height=\"400\" /\u003e \u003cimg src=\"images/toflat2.png\" height=\"400\" /\u003e\n\n### Supported View\n\n* Button (Android)\n\n### Properties\n\n* On\n    * Effect On/Off (true is On)\n* RippleColor (trigger)\n\t* Ripple effect color.(default none)\n\n\n### Xamlでの使用法\n\n```xml\n\u003cButton Text=\"ButtonText\" \n\tef:ToFlatButton.On=\"true\" \n\tef:ToFlatButton.RippleColor=\"Red\"\n\tBorderWidth=\"4\" BorderColor=\"Green\" BorderRadius=\"10\" \n/\u003e\n```\n\n## AddText\n\nこれは任意のviewに1行テキストを追加するEffectです。\nこのEffectを使うと、例えばバリデーションや文字カウントなどの情報を表示することができます。\nまたテキストの位置（左上・右上・右下・左下）、テキスト色、フォントサイズ、マージンなどをプロパティを指定できます。\n\n\u003cimg src=\"images/addtext_ios.gif\" /\u003e \u003cimg src=\"images/addtext_droid.gif\" /\u003e\n\n### Supported View\n\n* Label\n* Entry\n* Editor\n* StackLayout\n* AbsoluteLayout\n\n### Properties\n\n* On\n\t* Effect On/Off (true is On)\n* Text\n\t* added text\n* TextColor\n\t* Default Red\n* BackgroundColor\n\t* BackgroundColor of inner text view.\n\t* Default Transparent\n* FontSize\n\t* Default 8\n* Margin\n\t* Distance from a side of target view to inner text view.\n\t* Default 0,0,0,0\n* Padding\n\t* Padding of inner text view. \n\t* Default 0,0,0,0\n* HorizontalAlign\n\t* horizontal text position(Start or End). Default End.\n* VerticalAlign\n\t* vertical text position(Start or End). Default Start.\n\n### Xamlでの使用方法\n\n```xml\n\u003cContentPage \n\txmlns=\"http://xamarin.com/schemas/2014/forms\" \n\txmlns:x=\"http://schemas.microsoft.com/winfx/2009/xaml\" \n\txmlns:ef=\"clr-namespace:AiForms.Effects;assembly=AiForms.Effects\"\n\tx:Class=\"AiEffects.TestApp.Views.AddTextPage\"\u003e\n\t\u003cStackLayout Margin=\"4\"\u003e\n\t\t\u003cEntry HorizontalOptions=\"FillAndExpand\" Text=\"{Binding Title}\"\n\t\t\tef:AddText.On=\"true\" ef:AddText.TextColor=\"Red\" \n\t\t\tef:AddText.FontSize=\"10\" ef:AddText.Margin=\"4,8,4,8\" \n\t\t\tef:AddText.Padding=\"2,4,2,4\" ef:AddText.BackgroundColor=\"#A0F0F0E0\"\n\t\t\tef:AddText.HorizontalAlign=\"End\"\n\t\t\tef:AddText.VerticalAlign=\"Start\" \n\t\t\tef:AddText.Text=\"{Binding TitleMessage}\" /\u003e\n\t\u003c/StackLayout\u003e\n\u003c/ContentPage\u003e\n```\n\n### 制限事項\n\nAndroidの場合、デバイスを回転したときテキストの位置が正しくなりません。\n\n## AddCommand\n\nこれは任意のviewにCommandの機能を追加するEffectです。\nタップとロングタップにそれぞれのCommandとParameterを設定できます。\n\n### Supported View (in case Xamarin.Forms 3.6.0)\n\n|                   | iOS | Android |\n| ----------------- | --- | ------- |\n| ActivityIndicator | ✅   | ✅       |\n| BoxView           | ✅   | ✅       |\n| Button            | ✅   | ✅       |\n| DatePicker        | ❌   | ✅       |\n| Editor            | ❌   | ❌       |\n| Entry             | ❌   | ❌       |\n| Image             | ✅   | ✅       |\n| Label             | ✅   | ✅       |\n| ListView          | ✅   | ❌       |\n| Picker            | ❌   | ✅       |\n| ProgressBar       | ✅   | ✅       |\n| SearchBar         | ❌   | ❌       |\n| Slider            | ✅   | ❌       |\n| Stepper           | ✅   | ❌       |\n| Switch            | ❌   | ❌       |\n| TableView         | ❌   | ❌       |\n| TimePicker        | ❌   | ✅       |\n| WebView           | ❌   | ❌       |\n| ContentPresenter  | ✅   | ✅       |\n| ContentView       | ✅   | ✅       |\n| Frame             | ✅   | ❌       |\n| ScrollView        | ❌   | ❌       |\n| TemplatedView     | ✅   | ✅       |\n| AbsoluteLayout    | ✅   | ✅       |\n| Grid              | ✅   | ✅       |\n| RelativeLayout    | ✅   | ✅       |\n| StackLayout       | ✅   | ✅       |\n\n### Properties\n\n* On\n    * Effect On/Off (true is On)\n* Command (trigger)\n    * タップ時のCommand\n* CommandParameter\n    * タップ時のCommandParameter\n* LongCommand (trigger)\n    * ロングタップ時のCommand\n* LongCommandParameter\n    * ロングタップ時のCommandParameter\n* EffectColor\n    * タップした時の背景色。(Default: transparent)\n* ~~EnableRipple~~\n    * ~~Ripple Effect On/Off (default true,android only)\n      Rippleを使いたくない場合はfalseに設定してください。~~\n    * ver.1.4.0 で廃止されました。\n* EnableSound\n    * タップしたときにシステム音を鳴らします。(Default false)\n* SyncCanExecute\n    * CommandのCanExecuteとviewのIsEnableを同期させるかどうか(Default false)\n    * trueにするとviewはCanExecuteがfalseの場合はdisableっぽい外観になります。\n\n### Xamlでの使用法\n\n```xml\n\u003cContentPage xmlns=\"http://xamarin.com/schemas/2014/forms\"\n\t\txmlns:x=\"http://schemas.microsoft.com/winfx/2009/xaml\"\n\t\txmlns:ef=\"clr-namespace:AiForms.Effects;assembly=AiForms.Effects\"\n\t\tx:Class=\"AiEffects.Sample.Views.AddCommandPage\"\u003e\n\n        \u003cStackLayout\u003e\n    \t\t\u003cLabel Text=\"Label\"\n    \t\t\tef:AddCommand.On=\"true\"\n    \t\t\tef:AddCommand.EffectColor=\"#50FFFF00\"\n    \t\t\tef:AddCommand.Command=\"{Binding EffectCommand}\"\n    \t\t\tef:AddCommand.CommandParameter=\"Label\"\n                ef:AddCommand.LongCommand=\"{Binding LongTapCommand}\"\n                ef:AddCommand.LongCommandParameter=\"LongTap\" /\u003e\n        \u003c/StackLayout\u003e\n\u003c/ContentPage\u003e\n```\n\n### 制限事項\n\n**Android**\n\n* AiForms.Effects 1.1.0 以上で Layout系の要素にRippleを適用した場合、子のInputTrasparentは動作しなくなります。\n\n### Tips\n\n#### システム音の変更\n\nAppDelegate\n```cs\npublic override bool FinishedLaunching(UIApplication app, NSDictionary options) {\n    global::Xamarin.Forms.Forms.Init();\n\n    AiForms.Effects.iOS.Effects.Init();\n    //here specify sound number\n    AiForms.Effects.iOS.FeedbackPlatformEffect.PlaySoundNo = 1104;\n    ...\n}\n```\n\nMainActivity\n```cs\nprotected override void OnCreate(Bundle bundle) {\n    \n    base.OnCreate(bundle);\n    ...\n    \n    global::Xamarin.Forms.Forms.Init(this, bundle);\n    \n    //here specify SE\n    AiForms.Effects.Droid.FeedbackPlatformEffect.PlaySoundEffect = Android.Media.SoundEffect.Spacebar;\n    \n    ...\n}\n```\n\n#### Imageへ使用する場合\n\nRipple エフェクトはフォアグラウンドで発生せずにバックグラウンドとして発生していまいます。この場合はLayoutでラップすると回避できます。\n\n```xml\n\u003cStackLayout ef:AddCommand.On=\"{Binding EffectOn}\"\n\t\t\t ef:AddCommand.EffectColor=\"{Binding EffectColor}\"\u003e\n    \u003cImage Source=\"image\" /\u003e\n\u003c/StackLayout\u003e\n```\n\n## AddNumberPicker\n\nこのEffectは任意のviewに NumberPicker の機能を追加します。\nviewをタップするとPickerが表示され、数値を選択すると、それが Numberプロパティに反映されます。この時 Commandプロパティを設定していれば、それも実行されます。\n\n\u003cimg src=\"images/numberpicker1.gif\" height=400 /\u003e \u003cimg src=\"images/numberpicker2.gif\" height=400 /\u003e\n\n### Supported View\n\n* Label\n* BoxView\n* Button\n* Image\n* StackLayout\n* AbsoluteLayout\n\n他はだいたいAddCommandと同じです。\n\n### Properties\n\n* On\n    * Effect On/Off (true is On)\n* Min\n\t* minimum number(positive integer)\n* Max\n\t* maximum number(positive integer)\n* Number (trigger)\n\t* current number(default twoway binding)\n* Title\n\t* Picker Title(optional)\n\t* iOSではこれが長すぎると外観を損ねるので注意してください。\n* Command\n    * command invoked when a number was picked(optional)\n\n\n### Xamlでの使用法\n\n```xml\n\u003cContentPage xmlns=\"http://xamarin.com/schemas/2014/forms\"\n\t\txmlns:x=\"http://schemas.microsoft.com/winfx/2009/xaml\"\n\t\txmlns:ef=\"clr-namespace:AiForms.Effects;assembly=AiForms.Effects\"\n\t\txmlns:prism=\"clr-namespace:Prism.Mvvm;assembly=Prism.Forms\"\n\t\tprism:ViewModelLocator.AutowireViewModel=\"True\"\n\t\tx:Class=\"AiEffects.Sample.Views.AddNumberPickerPage\"\n\t\tTitle=\"AddNumberPicker\"\u003e\n\t\u003cStackLayout\u003e\n\t\t\u003cLabel Text=\"Text\"\n\t\t\tef:AddNumberPicker.On=\"true\"\n\t\t\tef:AddNumberPicker.Min=\"10\"\n\t\t\tef:AddNumberPicker.Max=\"999\"\n\t\t\tef:AddNumberPicker.Number=\"{Binding Number}\"\n\t\t\tef:AddNumberPicker.Title=\"Select your number\"\n            ef:AddNumberPicker.Command=\"{Binding SomeCommand}\" /\u003e\n    \u003c/StackLayout\u003e\n\u003c/ContentPage\u003e\n```\n\n## AddTimePicker\n\nこれは任意のviewに TimePicker を追加するEffectです。\nviewをタップするとPickerが表示され、時間を選択すると、それが Time プロパティに反映されます。この時 Command プロパティを設定していれば、それも実行されます。\n\n### Properties\n\n* On\n    * Effect On/Off (true is On)\n* Time (trigger)\n\t* current time(default twoway binding)\n* Title\n\t* Picker Title(optional)\n\t* iOSではこれが長すぎると外観を損ねるので注意してください。\n* Command\n    * command invoked when a time was picked(optional)\n\n## AddDatePicker\n\nこれは、任意のviewに DatePicker の機能を追加する Effectです。\nviewをタップするとPickerが表示され、日付を選択すると、それが Date プロパティに反映されます。この時 Command プロパティを設定していれば、それも実行されます。\n\n### Properties\n\n* On\n    * Effect On/Off (true is On)\n* MinDate\n\t* minimum date(optional)\n* MaxDate\n\t* maximum date(optional)\n* Date (trigger)\n\t* current date(default twoway binding)\n* TodayText\n\t* 今日 を選択するためのボタンのタイトル(optional / only iOS)\n\t* このプロパティを設定すると「今日」ボタンが表示され、タップすると今日が選択されます。\n* Command\n    * command invoked when a date was picked(optional)\n\n## AlterLineHeight\n\nこのEffectは Label と Editor で行間・行高を変更します。\n\n\u003cimg src=\"images/lineheight1.gif\" width=250 /\u003e \u003cimg src=\"images/lineheight2.jpg\" width=250 /\u003e\n\n### Supported View\n\n* Label\n* Editor\n\n### Properties\n\n* On\n    * Effect On/Off (true is On)\n* Multiple (trigger)\n\t* フォントサイズに対する倍率\n\t* フォントの高さ * この倍率 が 行の高さになります。\n\n### Xamlでの使用法\n\n```xml\n\u003cContentPage xmlns=\"http://xamarin.com/schemas/2014/forms\"\n\t\txmlns:x=\"http://schemas.microsoft.com/winfx/2009/xaml\"\n\t\txmlns:ef=\"clr-namespace:AiForms.Effects;assembly=AiForms.Effects\"\n\t\txmlns:prism=\"clr-namespace:Prism.Mvvm;assembly=Prism.Forms\"\n\t\tprism:ViewModelLocator.AutowireViewModel=\"True\"\n\t\tx:Class=\"AiEffects.Sample.Views.AlterLineHeightPage\"\n\t\tTitle=\"AlterLineHeight\"\u003e\n\t\u003cStackLayout BackgroundColor=\"White\" Spacing=\"4\"\u003e\n\t\t\u003cLabel Text=\"{Binding LabelText}\" VerticalOptions=\"Start\" FontSize=\"12\"\n\t\t\tef:AlterLineHeight.On=\"true\"\n\t\t\tef:AlterLineHeight.Multiple=\"1.5\"  /\u003e\n\t\u003c/StackLayout\u003e\n\u003c/ContentPage\u003e\n```\n\n## AlterColor\n\nこれは通常変更できない箇所の色を変更する Effect です。\n\n\u003cimg src=\"images/altercolor_ios.gif\" /\u003e \u003cimg src=\"images/altercolor_droid.gif\" /\u003e\n\n### Supported views\n\n|        | iOS | Android | which part |\n| ------ | --- | ------- | ---------- |\n| Page   |     | ✅       | Statusbar  |\n| Slider | ✅   | ✅       | Trackbar   |\n| Switch | ✅   | ✅       | Trackbar   |\n| Entry  |     | ✅       | Under line |\n| Editor |     | ✅       | Under line |\n\n### Properties\n\n* On\n    * Effect On/Off (true is On)\n* Accent (trigger)\n\t* changed color.\n\n### Xamlでの使用法\n\n```xml\n\u003cSlider Minimum=\"0\" Maximum=\"1\" Value=\"0.5\" \n\tef:AlterColor.On=\"true\" ef:AlterColor.Accent=\"Red\" /\u003e\n```\n\n## Placeholder\n\n** この機能は Xamarin.Forms 3.2.0 で実装されました。 **\n\n\u003e 3.2.0より前のバージョンを使っている場合は、このEffectを利用できます。\n\nこれは Editor に プレースホルダーを表示する Effectで、Editor専用です。\n\n\u003cimg src=\"images/placeholder_ios.gif\" /\u003e \u003cimg src=\"images/placeholder_droid.gif\" /\u003e\n\n### Properties\n\n* On\n\t* Effect On/Off (true is On)\n* Text (trigger)\n\t* Placeholder text.\n* Color\n\t* Placeholder color.\n\n### Xamlでの使用法\n\n```xml\n\u003cContentPage \n\txmlns=\"http://xamarin.com/schemas/2014/forms\" \n\txmlns:x=\"http://schemas.microsoft.com/winfx/2009/xaml\" \n\txmlns:ef=\"clr-namespace:AiForms.Effects;assembly=AiForms.Effects\"\n\tx:Class=\"AiEffects.TestApp.Views.BorderPage\"\u003e\n\t\u003cEditor HeightRequest=\"150\"\n\t\tef:Placeholder.On=\"true\"\n\t\tef:Placeholder.Text=\"placeholder text\"\n\t\tef:Placeholder.Color=\"#E0E0E0\"\n\t/\u003e\n\u003c/ContentPage\u003e\n```\n\n## Contributors\n\n* [yuka-abn](https://github.com/yuka-abn)\n* [gentledepp](https://github.com/gentledepp)\n\n## 寄付\n\n開発継続のため、寄付を募集しています。\n\n寄付をいただけるとやる気が非常にアップしますので、どうかよろしくお願いいたします🙇\n\n* [PayPalMe](https://paypal.me/kamusoftJP?locale.x=ja_JP)\n\n## スポンサー\n\nスポンサーも募集しています。\nこちらはサブスクリプション制になります。\n\n* [GitHub Sponsors](https://github.com/sponsors/muak)\n\n## 謝辞\n\n* [boze0904](https://github.com/boze0904)\n\n## License\n\nMIT Licensed.\n","funding_links":["https://github.com/sponsors/muak","https://paypal.me/kamusoftJP?locale.x=ja_JP"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuak%2Faiforms.effects","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuak%2Faiforms.effects","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuak%2Faiforms.effects/lists"}