うさぎ駆動開発

UWP, Xamarin.Macを中心によしなしごとを書いていきます。

XF.MacOS で CustomRenderer を使う (初級編)

前回取りあえず動かすところまでいきました。

aile.hatenablog.com

どうもmacOS側のボタンがいまいちです。CustomRendererを使ってコントロールのスタイルを変更してみます。

カスタムコントロールを用意

今回はButtonをいじりたいので,Xamarin.Forms.Buttonを継承したクラスを適当に作ってXAMLの記述を合わせて変更しておきます。

// CustomButton.cs
using Xamarin.Forms;
namespace DialogSample
{
    public class CustomButton : Button
    {
    }
}
<!-- 該当部のみ -->
<local:CustomButton Text="Tap or Click Me!" Clicked="Handle_Clicked" />

Rendererを用意

各プラットフォームで対応するViewRendererを用意します。 macOSの青いデフォルトボタンにするにはこんな感じ。

f:id:ailen0ada:20160912222122p:plain

KeyEquivalentを指定したので,Returnキーできっちり反応します。

問題点

ちょっと細すぎるので高さを変えたかったところ,Frameいじっても新しく作ってSetNativeControlしてもだめ。 StackLayoutのせいかしら。じゃあGrid?

f:id:ailen0ada:20160912222548p:plain

なるほど。レイアウトで何とかしていく感じね。