private async void TurnOnAllLights() { LightToggle.IsHitTestVisible = false; LightToggle.Opacity = 0.5; await BridgeManager.Instance.TurnOnAllLightsAsync(); LightToggle.Opacity = 1; LightToggle.IsHitTestVisible = true; UpdateLightControlLabel(); BridgeAnimation.Begin(); }
private void OnLightsOnOffChanged(object sender, EventArgs e) { UpdateLightControlLabel(); int onCount = BridgeManager.Instance.GetActiveLightCount(); if (onCount > 0) { BridgeAnimation.Begin(); } else { BridgeAnimation.Stop(); } }
public void UpdateLightWidgets() { RingGrid.Children.Clear(); if (BridgeManager.Instance.CurrentBridge.LightList.Count == 0) { LightControlLabel.Text = LightNoneText; return; } var radius = (this.Width - OutterRing.Margin.Left - OutterRing.Margin.Right) / 2; var angleStep = Math.PI * 2 / BridgeManager.Instance.CurrentBridge.LightList.Count; int i = 0; foreach (var light in BridgeManager.Instance.CurrentBridge.LightList) { var indicator = new LightIndicatorControl(); indicator.Width = 10; indicator.Height = 10; indicator.LightSource = light; RingGrid.Children.Add(indicator); // Position the light indicator double angle = i * angleStep; var tf = new TranslateTransform(); tf.X = radius * Math.Cos(angle); tf.Y = radius * Math.Sin(angle); indicator.RenderTransform = tf; i++; } UpdateLightControlLabel(); int onCount = BridgeManager.Instance.GetActiveLightCount(); if (onCount > 0) { BridgeAnimation.Begin(); } }
/// <summary> /// Invoked when this page is about to be displayed in a Frame. /// </summary> /// <param name="e">Event data that describes how this page was reached. /// This parameter is typically used to configure the page.</param> protected override void OnNavigatedTo(NavigationEventArgs e) { BridgeAnimation.Begin(); TryRegisterUser(); }