読者です 読者をやめる 読者になる 読者になる

Xamarin 日本語情報

Xamarin(ザマリン) の代理店だったエクセルソフト田淵のブログです。主に Xamarin に関するエントリーをアップしていきます。(なるべく正しい有益な情報を掲載していきたいと考えていますが、このブログのエントリーは所属組織の公式見解ではありませんのでご注意ください)

Xamarin.Forms の Slider の Max,Min 設定方法

こんにちは。エクセルソフトの田淵です。

Xamarin.Forms の Slider の Min/Max の設定方法

@kurosawa0626 さんから

との調査依頼を頂いたので調べてみました。

Xamarin.Forms の Slider コントロールは Minimum を 0 以外の値にすると書き方次第で落ちるようです。

落ちるケース

Xaml

<StackLayout>
  <Slider
    Minimum="50.0"
    Maximum="100.0" />
</StackLayout>

C#

var slider = new Slider
{
  Minimum = 50.0,
  Maximum = 100.0,
};
Content = new StackLayout
{
  Children = { slider }
};
Content = new StackLayout
{
  Children = { 
    new slider {
      Minimum = 50.0,
      Maximum = 100.0,
    }
  }
};

Forum や Bugzilla にも情報がありました。

2015/2/22 時点での最新版 1.3.4 でも直っていませんでした。回避策としては、Maximum を先に書く か、Minimum を 0 または未指定にすると良いようです。

落ちないケース

Xaml

<StackLayout>
  <Slider
    Maximum="100.0" />
    Minimum="50.0"
</StackLayout>

C#

var slider = new Slider
{
  Maximum = 100.0,
  Minimum = 50.0,
};
Content = new StackLayout
{
  Children = { slider }
};
Content = new StackLayout
{
  Children = { 
    new slider {
      Maximum = 100.0,
      Minimum = 50.0,
    }
  }
};

または

Content = new StackLayout
{
  Children = { 
    new slider {
      Maximum = 100.0,
    }
  }
};

などですね。

仕様なのかバグなのかはちょっと良く分からないです。

Xamarin.Forms.Slider の API ドキュメント

Xamarin 気になった方は

是非 ダウンロード(直接) / ダウンロード(弊社経由) して触ってみてください。 学習用リソースJXUG リンクページ に参考資料を纏めてますので併せてどうぞ。

以上です。