コメント
コメントの投稿
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。
using Xamarin.Forms;
namespace AppName.Controls
{
[System.Diagnostics.DebuggerStepThrough()]
public class BaseSlider : Slider
{
#region "コンストラクタ"
public BaseSlider() : base()
{
this.Initialize();
}
public BaseSlider(double min, double max, double val) : base(min, max, val)
{
this.Initialize();
}
/// <summary>
/// 共通初期化処理
/// </summary>
private void Initialize()
{
//画面の横幅いっぱいの場合に左右にスペースがあった方が操作がしやすい
//(※囲まれるStackLayoutに左右のスペースが10設定されている上で)
this.Margin = new Thickness(10, 5, 10, 5);
//値変更イベント
this.ValueChanged += (sender, e) =>
{
//整数値に切り捨てた値を保持する
_value = (int)this.Value;
//整数値が変更されたときのみ反映する
if ((int)e.NewValue != (int)e.OldValue)
{
base.Value = _value;
}
};
}
#endregion
#region "プロパティ"
private int _value = 0;
/// <summary>
/// 整数の値を取得する
/// </summary>
public int IntValue
{
get
{
return _value;
}
}
#endregion
}
}
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:base="clr-namespace:AppName.Controls;assembly=AppName"
x:Class="AppName.Views.TestPage">
<ContentPage.Content>
<StackLayout VerticalOptions="FillAndExpand"
Orientation="Vertical">
<StackLayout.Padding>
<OnPlatform x:TypeArguments="Thickness"
iOS="10, 10, 10, 0"
Android="10, 10, 10, 0"
WinPhone="10, 10, 10, 0" />
</StackLayout.Padding>
<Label x:Name="lblPrice" Text="" HorizontalOptions="End" />
<base:BaseSlider x:Name="sldPrice"
Value="0"
Maximum="9999"
Minimum="0"
HorizontalOptions="FillAndExpand" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
using AppName.Controls;
using Xamarin.Forms;
namespace AppName.Views
{
public TestPage()
{
this.sldPrice.ValueChanged += (sender, e) =>
{
this.lblPrice.Text = this.sldPrice.IntValue.ToString() + "円";
};
}
}
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。