using System;
|
using Shared.Common;
|
namespace Shared.Phone.Device.CommonForm
|
{
|
/// <summary>
|
/// 类似按下拥有短暂点亮效果的button
|
/// </summary>
|
public class SelectedStatuButton:Button
|
{
|
/// <summary>
|
/// 选中状态停留时间 单位 毫秒
|
/// 默认200毫秒
|
/// </summary>
|
private static readonly int SelectedStatuTime = 200;
|
/// <summary>
|
/// Initializes a new instance of the <see cref="T:Shared.SelectedStatuButton"/> class.
|
/// </summary>
|
public SelectedStatuButton(uint textColor = 0xFF666666, uint selectedTextColor = 0xFF000000)
|
{
|
MouseDownEventHandler += Button_MouseDownEvent;
|
TextColor = textColor;
|
SelectedTextColor = selectedTextColor;
|
}
|
|
|
/// <summary>
|
/// 单击按下,实现短暂点亮选中效果
|
/// </summary>
|
/// <param name="sender">Sender.</param>
|
/// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
|
private void Button_MouseDownEvent(object sender, MouseEventArgs mouseEventArgs)
|
{
|
bool statu = IsSelected;
|
SetSeletedStatu();
|
new System.Threading.Thread(() =>
|
{
|
System.Threading.Thread.Sleep(SelectedStatuTime);
|
SetUnSelectedStatu();
|
Application.RunOnMainThread(() =>
|
{
|
IsSelected = statu;
|
});
|
})
|
{ IsBackground = true }.Start();
|
|
}
|
/// <summary>
|
/// 设置选中状态
|
/// </summary>
|
public void SetSeletedStatu()
|
{
|
Application.RunOnMainThread(() =>
|
{
|
if (string.IsNullOrEmpty(UnSelectedImagePath) == false && string.IsNullOrEmpty(SelectedImagePath) == true)
|
{
|
IsSelected = false;
|
}
|
else
|
{
|
IsSelected = true;
|
}
|
});
|
}
|
/// <summary>
|
/// 设置不选中状态
|
/// </summary>
|
public void SetUnSelectedStatu()
|
{
|
Application.RunOnMainThread(() =>
|
{
|
IsSelected = false;
|
});
|
}
|
}
|
|
|
}
|