private void CreateTitles() { titleGrid.Children.Clear(); titleGrid.ColumnDefinitions.Clear(); int length = Drinks.Length; for (int i = 0; i < length; i++) { titleGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }); Viewbox view = new Viewbox(); TextBlock text = new TextBlock() { Text = Drinks[i].Name, TextAlignment = TextAlignment.Center, FontFamily = new FontFamily(new Uri("pack://application:/Styles/"), "Coolvetica Rg"), Margin = new Thickness(5) }; view.SetValue(Grid.ColumnProperty, i); view.Child = text; titleGrid.Children.Add(view); } }
/// <summary> /// OnBusyStateChanged /// </summary> /// <param name="d"></param> /// <param name="e"></param> private static void OnBusyStateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { bool isBusy = (bool)e.NewValue; bool wasBusy = (bool)e.OldValue; if (isBusy == wasBusy) { return; } var hostGridObject = (GetTargetVisual(d) ?? d); Debug.Assert(hostGridObject != null); var hostGrid = hostGridObject as Grid; if (hostGrid == null) { throw new InvalidCastException( string.Format( "The object being attached to must be of type {0}. Try embedding your visual inside a {0} control, and attaching the behavior to the {0} instead.", typeof(Grid).Name)); } if (isBusy) { Debug.Assert(LogicalTreeHelper.FindLogicalNode(hostGrid, "BusyIndicator") == null); bool dimBackground = GetDimBackground(d); var grid = new Grid { Name = "BusyIndicator", Opacity = 0.0 }; if (dimBackground) { grid.Cursor = Cursors.Wait; grid.ForceCursor = true; InputManager.Current.PreProcessInput += OnPreProcessInput; } grid.SetBinding(FrameworkElement.WidthProperty, new Binding("ActualWidth") { Source = hostGrid }); grid.SetBinding(FrameworkElement.HeightProperty, new Binding("ActualHeight") { Source = hostGrid }); for (int i = 1; i <= 3; ++i) { grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); } ProgressIndicator = new BusyIndicator() { Width = 150, Height = 120 }; var viewbox = new Viewbox { HorizontalAlignment = HorizontalAlignment.Center, Stretch = Stretch.Uniform, StretchDirection = StretchDirection.Both, Child = ProgressIndicator }; grid.SetValue(Panel.ZIndexProperty, 1000); grid.SetValue(Grid.RowSpanProperty, Math.Max(1, hostGrid.RowDefinitions.Count)); grid.SetValue(Grid.ColumnSpanProperty, Math.Max(1, hostGrid.ColumnDefinitions.Count)); if (GetAddMargins(d)) { viewbox.SetValue(Grid.RowProperty, 1); viewbox.SetValue(Grid.ColumnProperty, 1); } else { viewbox.SetValue(Grid.RowSpanProperty, 3); viewbox.SetValue(Grid.ColumnSpanProperty, 3); } viewbox.SetValue(Panel.ZIndexProperty, 1); var dimmer = new Rectangle { Name = "Dimmer", Opacity = GetDimmerOpacity(d), Fill = GetDimmerBrush(d), Visibility = (dimBackground ? Visibility.Visible : Visibility.Collapsed) }; dimmer.SetValue(Grid.RowSpanProperty, 3); dimmer.SetValue(Grid.ColumnSpanProperty, 3); dimmer.SetValue(Panel.ZIndexProperty, 0); grid.Children.Add(dimmer); grid.Children.Add(viewbox); grid.BeginAnimation(UIElement.OpacityProperty, new DoubleAnimation(1.0, GetDimTransitionDuration(d))); hostGrid.Children.Add(grid); } else { var grid = (Grid)LogicalTreeHelper.FindLogicalNode(hostGrid, "BusyIndicator"); Debug.Assert(grid != null); if (grid != null) { grid.Name = string.Empty; var fadeOutAnimation = new DoubleAnimation(0.0, GetDimTransitionDuration(d)); fadeOutAnimation.Completed += (sender, args) => OnFadeOutAnimationCompleted(d, hostGrid, grid); grid.BeginAnimation(UIElement.OpacityProperty, fadeOutAnimation); } } }
/** * Fuegt den Player dem Grid hinzu */ private void AddPlayer() { _gsc = new GreenScreenControl.GreenScreenControl(); _gsc.Width = _sensor.ColorStream.FrameWidth; _gsc.Height = _sensor.ColorStream.FrameHeight; _gsc.Start(_sensor, false); _playerBox = new Viewbox(); _playerBox.Child = _gsc; _playerBox.Stretch = Stretch.Fill; _playerBox.SetValue(Panel.ZIndexProperty, 1); MiniGameGrid.Children.Add(_playerBox); if (_playerSkeleton.Joints[JointType.ShoulderCenter].Position.X < -0.25) { Grid.SetColumn(_playerBox, 1); } else if (_playerSkeleton.Joints[JointType.ShoulderCenter].Position.X > 0.25) { Grid.SetColumn(_playerBox, 3); } else { Grid.SetColumn(_playerBox, 2); } Grid.SetRow(_playerBox, 4); }