スキップしてメイン コンテンツに移動

.NET MAUI Xamrinから移行するときはFrameをBorderにしましょうだって

MAUIでは非推奨だった

マジですか
FrameはXamrinのオブジェクトであって、MAUIではBorderを使えだってよ・・・

先日Windows版に移植してFrameがクラッシュしたから調べてたのだけど

マイクロソフトのページには

注意

クラスは Frame Xamarin.Forms に存在し、Xamarin.Forms から .NET MAUI にアプリを移行するユーザー向けに .NET MAUI に存在します。 新しい .NET MAUI アプリをビルドする場合は、代わりに を使用Borderし、 のバインド可能なプロパティVisualElementを使用してシャドウをShadow設定することをお勧めします。 詳細については、「 罫線」を参照してください。

なんてことが書いてある(しかしいつもながらなんつー日本語だよ)

まあ、「だったらFrameをBorderに変えるだけじゃん」 とやったらビルド失敗。
えええ・・・

変更点

  1. まず、BorderColorが無い
    Strokeになります
  2. CornerRadiusも無い
    新たなタグを使う↓これ
    <Border.StrokeShape>
      <RoundRectangle  CornerRadius="10" />
    </Border.StrokeShape>

こんな感じ

        <Border Stroke="Orange" BackgroundColor="Transparent" Padding="0,1,0,1" >
            <Border.StrokeShape>
                <RoundRectangle  CornerRadius="10" />
            </Border.StrokeShape>
            <StackLayout Spacing="2">
<!--    この中に色々パーツを置く   -->
          </StackLayout>
        </Border>

おわかりいただけるだろうか
<border.StrokeShape>と言うタグがあるのを

その中に隅っこの丸さを記載する

面倒くさいなぁと思ってもそういう書式なので・・・

んで、丁度いいので
Frameが2個並んでるところがあったので、片方をBorderにしてみた

  <Border Padding="0" Stroke="SkyBlue" BackgroundColor="Transparent" >
      <Label Text="揺らぎの周期:単位はミリセカンド、同じ明るさをどの程度を継続するのかを設定"></Label>
  </Border>
  <Frame Padding="0" BorderColor="SkyBlue" BackgroundColor="Transparent">
      <Label Text="下限の割合:単位は%。f/1揺らぎの計算をしている最中にこれ以下の明るさになったら、乱数を使用して明るさをジャンプさせます"></Label>
  </Frame>

一部を抜き出してみたのだけど

BorderとFrame

わかりますかね・・・・

水色の四角が二つ上下に並んでるのですが、上がBorder、下がFrameで枠を書いてる

まあ見た目が変わらないので、とっととXamarinの遺産は葬ってMAUIのオブジェクトを使いましょうというお話し

パーツを中に色々Stackしていると若干だけど画面遷移も早くなるみたい

おしまい


コメント

このブログの人気の投稿

RAM DISKを使ってみた(使ったのはImDisk)

GWだし、まあちょっとラムディスクを入れてみました うちのPCはWindows11 使ったのはImDiskというRAM Disk。 まあ、この辺のインストールとかはあちこちで解説してる人がいるので適当にぐぐってくださいな で、とりあえずベンチマーク なかなかいいスピードだ で、大抵の人はブラウザのキャッシュをRAMディスクにするといいよ・・・と言うけど そもそもメインドライブがNVMeのSSDを使っている状態で、体感速度なんか上がらない(使い終わったキャッシュを再起動したら綺麗さっぱり捨て去ってくれるという利点はある)  うちで一番効果があるのは Adobe Audition というアプリ これが結構高速化する(キャッシュをちゃんとRAMディスクにしたら・・・だけど) ハイレゾ音源だと、1時間の音源が何かする度に4GBのファイルを作られてしまう なので、RAM DISKにすると、結構編集時間を短縮できる Premiere Rushも出力先をRam Diskにしておいて終わったら、SSDにコピーすると言う事をやるとかなりスピードアップになる 実はうちのPCは普段は99%のパワーで動作していて、CPUのターボブーストが掛からないようになっている 大体3.6GHz当たりで安定してるのだけど、これを100%にするとターボブースト機能がONになって一部のコアが4.5とか4.8GHzまで上がる まあ、毎回電源オプションをいじる事になるのだけどさ・・・ そうしてベンチを取ると こんな感じ とは言え、ブーストしてるからと行ってRam Diskのスピードの差を体感する事はさすがに無理 ・・・と言うかフォトショでもRAM DISKにしてよかった・・・と言うほど変わらない SSDの性能が上がってきたしもし次にPCを買い換えたらRAM DISKよりSSDの方が速いかもね  

.NET MAUIでスプラッシュスクリーン Android12で地獄を見る

まずは起動するところから・・・・  スプラッシュスクリーンだぬ マイクロソフトのサイト 見てると簡単そう(実際簡単で細かい事を気にしなければsvgファイルを用意して1行だけ書き換えておしまい)   なんかプロジェクトファイルに自動で記述されるらしい よし、プロジェクト作った                     つーか、もうスプラッシュがあるんだけど・・・・ そして自作のsvgファイル くうっ・・・デザインセンスない・・・・   それはともかく、このSVGファイルを Resources\Images にドラッグ&ドラッグ プロジェクトを右クリックして「プロジェクトファイルの編集」 して、編集できるようになったプロジェクトファイルを 自分のプロジェクトファイルに書き換える <MauiSplashScreen Include="Resources\Splash\splash.svg" Color="#512BD4" BaseSize="168,168" /> ↓ <MauiSplashScreen Include="Resources\Splash\ splashtestmaui .svg" Color="#512BD4" BaseSize="168,168" />   とりあえずAndroidで実行 お、おう・・・・ まあ最初はこんなもんよね 最初に紹介したマイクロソフトのサイトでもBaseSizeを書き換えてくださいって言ってるし 言われたとおりに <MauiSplashScreen Include="Resources\Splash\splashtestmaui.svg" Color="#512BD4" BaseSize=" 320,600 " /> 書き換えてみると いい感じじゃーん じゃあアンドロイドのバージョン毎に試してみよう   Android 7 Android 11 Android 12 Android 13 ...

ImDiskの後継アプリのAIM toolkitを試してみた

ImDiskの開発辞めちゃったらしい というわけで、じゃあ後継ソフトはあるのかと思ったらあった 遅いと言われているけど・・・ とインストールしてみた ImDiskのこの間の結果はこちら 再びRAM DISK(ImDisk)   blog.mazepin-led.com    そして今回のAIM Toolkit なんか、無茶苦茶遅くなってるな 下手するとSSDの方が速いじゃん CPUの使用状態はこんな感じ PIO転送なところは変わって無さそう まあ、遅いからと言ってその速度が体感できるのかというと出来ないんだけどね と思ったところで、なんか設定変えてみたらどうなるのだろう Allocate Memory Dynamicallyというのは、メモリを必要に応じてってことだからと思って以前試したことがあったけど、なんかImDiskのときは不安定だったんだよな  AdvancedのとこにあるUse AWE Physical Memoryというのが良くわからないけど、チェックしてみたら速くなった おお、大分速くなった。なったけど・・・・なんで? これだとImDiskよりちょっと遅いくらいになるのか もしやQuickFormatととかでも変わるのか?と思ったけどそこまでやる気も無かったので放置。速くなるわけないよね。 後は圧縮とか、取り外しメディアとかだし。   最近の性能の良いSSDのおかげで RAM DISKというものの存在意義が薄れちゃったね まあそれでとにかく速度を稼ぎたいぜって人は SoftPerfect RamDiskでも使ってください 昔はPrimo Ramdisk使ってました。当時使ってたけどなかなか良かった。 当時SSD無茶苦茶高かったし。 今はほぼ無用になってしまったが・・・ 未だにスタンダード版は8GBまでなんだな キャッシュ領域にしたいなら大人しく余ってるSSDを使った方がいいんじゃ無いかって気がするけど  おしまい