MAUIでは非推奨だった
マジですか
FrameはXamrinのオブジェクトであって、MAUIではBorderを使えだってよ・・・
先日Windows版に移植してFrameがクラッシュしたから調べてたのだけど
マイクロソフトのページには
注意
クラスは Frame Xamarin.Forms に存在し、Xamarin.Forms から .NET MAUI にアプリを移行するユーザー向けに .NET MAUI に存在します。 新しい .NET MAUI アプリをビルドする場合は、代わりに を使用Borderし、 のバインド可能なプロパティVisualElementを使用してシャドウをShadow
設定することをお勧めします。 詳細については、「 罫線 と 影」を参照してください。
なんてことが書いてある(しかしいつもながらなんつー日本語だよ)
まあ、「だったらFrameをBorderに変えるだけじゃん」 とやったらビルド失敗。
えええ・・・
変更点
- まず、BorderColorが無い
Strokeになります - 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で枠を書いてる
まあ見た目が変わらないので、とっととXamarinの遺産は葬ってMAUIのオブジェクトを使いましょうというお話し
パーツを中に色々Stackしていると若干だけど画面遷移も早くなるみたい
おしまい
コメント
コメントを投稿