何でProgress Ring?
MAUIでスマホのアプリを作っていると、どうしても標準じゃないコントロールを使いたくなる
・・・が、MAUIはGUIツールとしてはあんまりその手のコントロールが充実していない
スマホで横一直線に伸びるプログレスバーもダサいよなと思って探してみました
なので自作、は辛いので誰かいいものを作っててくれないかなぁと探したらVisual Studioのnugetに色々あった
nugetにあった
nugetにはいっぱいあった。世の中にはいい人がいっぱいいた。
何を選んだか
MPowerKit.ProgressRing
私が選んだのはMPowerKit.ProgressRingというコントロール。
他にもProgress Ring関連はいっぱいあるのだけど使い方の簡単そうなのを選びました。
サンプルに不備あり
不備というほどのものではないが・・・githubのreadmeページのサンプルだと動かない。フォーム中にコントロールを使えるようにするヘッダが書いてないぜ。
とりあえず実装
MainPage.xml
githubのサンプルソースを見てみた。
で作ってみたのがこのメインページ。
何が追加されかたというと
先頭の「xmlns:pr="clr-namespace:MPowerKit.ProgressRing;assembly=MPowerKit.ProgressRing"」
という部分。readmeにはこれが抜けている。後はラベルとボタンを付けただけ。
MainPage.xaml.cs
そしてボタンを押したらプログスリングを動作するようにした
難しいことはやっていない。
Task.Delay()は、これを入れないとfor-ループの中で画面が更新されないため。
この辺は、他のクラスを作って更新された進捗率をイベントで上げたら更新するのにBeginInvokeOnMainThread()で書き換えたりと自分のやり方でやる必要がある。
こんなふうになる
進捗率による表示
良い感じじゃないでしょうか
太さを変える
Thicknessというプロパティで太さが変えられます。
比率も変わる
HeightRequestとWidthRequestを比率を変えると(例えば下の例だとHeightRequest=200/WidthRequest=100)ちょっとグニャグニャした感じになる。
つーても、HeightRequestとWidthRequestは他のコントロールでもしょっちゅう使うので設定を間違ったときしかこんなふうにならないかな。
こんなのに何処に需要があるのだと言われそう
最後に
俺がダウンロードしたときはまだ600ダウンロードくらいしかされていないし、他にもProgress Ringはいっぱい公開されている。
人によって、色々こだわりがあると思うので自分の気に入ったのを使ってみてください。
といっても公開日が2017年とかそういうのもあるので・・・それはちょっと・・・って感じ
おしまい
コメント
コメントを投稿