public TVButton()
{
InitializeComponent();
-
+ HiddenButton.Clicked += ButtonClickListener;
+ HiddenButton.Focused += ButtonFocusedListener;
+ HiddenButton.Unfocused += ButtonUnfocusedListener;
HiddenButton.OnButtonUp += ButtonUpListener;
HiddenButton.OnButtonDown += ButtonDownListener;
}
+ private void ButtonClickListener(object sender, EventArgs e)
+ {
+ // Stops playing animation
+ ButtonGrid.AbortAnimation("ColorChange");
+
+ // Starts animation that change Focused Color to Selected Color
+ ButtonGrid.Animate("ColorChange", v =>
+ {
+ var gridColorR = (int)(255 * (1 - v));
+ var gridColorG = (int)(255 - 126 * v);
+ var gridColorB = (int)(255 - 57 * v);
+ ButtonGrid.BackgroundColor = Color.FromRgb(gridColorR, gridColorG, gridColorB);
+ },
+ length: 100,
+ finished: (a, b) =>
+ {
+ // Starts animation that change Selected Color to Focused Color
+ ButtonGrid.Animate("ColorChange", v =>
+ {
+ var gridColorR = (int)(255 * v);
+ var gridColorG = (int)(129 + 126 * v);
+ var gridColorB = (int)(198 + 57 * v);
+ ButtonGrid.BackgroundColor = Color.FromRgb(gridColorR, gridColorG, gridColorB);
+ },
+ length: 50,
+ finished: (c, d) =>
+ {
+ ButtonGrid.BackgroundColor = Color.FromRgb(255, 255, 255);
+ Command?.Execute(CommandParameter);
+ });
+ });
+ }
+
+ private void ButtonFocusedListener(object sender, FocusEventArgs e)
+ {
+ // Stops playing animation
+ ButtonGrid.AbortAnimation("ColorChange");
+
+ // Starts animation that change Unfocused Color to Focused Color
+ ButtonGrid.Animate("ColorChange", v =>
+ {
+ var gridColor = (int)(255 * v);
+ var textColor = (int)(255 * (1 - v));
+ ButtonGrid.BackgroundColor = Color.FromRgb(gridColor, gridColor, gridColor);
+ TitleText.TextColor = Color.FromRgb(textColor, textColor, textColor);
+ },
+ length: 150);
+ }
+
+ private void ButtonUnfocusedListener(object sender, FocusEventArgs e)
+ {
+ // Stops playing animation
+ ButtonGrid.AbortAnimation("ColorChange");
+
+ // Starts animation that change Focused Color to Unfocused Color
+ ButtonGrid.Animate("ColorChange", v =>
+ {
+ var gridColor = (int)(255 * (1 - v));
+ var textColor = (int)(255 * v);
+ ButtonGrid.BackgroundColor = Color.FromRgb(gridColor, gridColor, gridColor);
+ TitleText.TextColor = Color.FromRgb(textColor, textColor, textColor);
+ },
+ length: 150);
+ }
+
public void ButtonUpListener(Object sender, EventArgs e)
{
//BackgroundImage.Source = ButtonImageReleased;