public void Remove(ListBoxItem item)
 {
     _items.Remove(item);
     item.SetListBox(null);
 }
        object ListBox_UpdateWindow(object obj)
        {
            maxW = 0;
            lbx = new ListBox();
            lbis = new ListBoxItem[_colors.Length];
            Random random = new Random();
            for (int i = 0; i < _colors.Length; i++)
            {
                lbis[i] = new ListBoxItem();
                Rectangle rect = new Rectangle();
                int wd = _rectW + random.Next(100);
                if (wd > maxW)
                {
                    maxW = wd;
                }
                if (uniformW)
                {
                    rect.Width = _rectW;
                }
                else
                {
                    rect.Width = wd;
                }
                rect.Height = _rectH;
                rect.Fill = new SolidColorBrush(_colors[i]);
                lbis[i].Child = rect;
                lbx.Items.Add(lbis[i]);
            }
            lbx.VerticalOffset = _vOffset;
            lbx.HorizontalOffset = _hOffset;
            lbx.SelectedIndex = index;

            lbxItemColl = lbx.Items;
            _getSelectedIndex = lbx.SelectedIndex;
            _getSelectedItem = lbx.SelectedItem;

            mainWindow.Child = lbx;

            return null;
        }
 public int IndexOf(ListBoxItem item)
 {
     return _items.IndexOf(item);
 }
 public void Insert(int index, ListBoxItem item)
 {
     _items.Insert(index, item);
     item.SetListBox(_listBox);
 }
 public bool Contains(ListBoxItem item)
 {
     return _items.Contains(item);
 }
 public int Add(UIElement element)
 {
     ListBoxItem item = new ListBoxItem();
     item.Child = element;
     return Add(item);
 }
 public int Add(ListBoxItem item)
 {
     int pos = _items.Add(item);
     item.SetListBox(_listBox);
     return pos;
 }
        public void ScrollIntoView(ListBoxItem item)
        {
            VerifyAccess();

            if (!Items.Contains(item)) return;

            int panelX, panelY;
            _panel.GetLayoutOffset(out panelX, out panelY);

            int x, y;
            item.GetLayoutOffset(out x, out y);

            int top = y + panelY;
            int bottom = top + item._renderHeight;

            // Make sure bottom of item is in view
            //
            if (bottom > _scrollViewer._renderHeight)
            {
                _scrollViewer.VerticalOffset -= (_scrollViewer._renderHeight - bottom);
            }

            // Make sure top of item is in view
            //
            if (top < 0)
            {
                _scrollViewer.VerticalOffset += top;
            }
        }
        /// <summary>
        /// Creates all WPF controls of the window
        /// </summary>
        private void InitializeComponents()
        {
            this.Width = SystemMetrics.ScreenWidth;
            this.Height = SystemMetrics.ScreenHeight;
            this.Background = new SolidColorBrush(Colors.Black);

            Image logoImage = new Image(Resources.GetBitmap(Resources.BitmapResources.Logo));

            #region ListBox event handler
            Color selectedItemColor = Colors.White;
            Color unselectedItemColor = ColorUtility.ColorFromRGB(206, 206, 206);
            Brush selectedBackground = new SolidColorBrush(ColorUtility.ColorFromRGB(0, 148, 255));

            menuListBox = new ListBox();
            menuListBox.Background = this.Background;
            menuListBox.HorizontalAlignment = HorizontalAlignment.Center;

            // Event handler for menu items
            menuListBox.SelectionChanged += delegate(object sender, SelectionChangedEventArgs e)
            {
                int previousSelectedIndex = e.PreviousSelectedIndex;
                if (previousSelectedIndex != -1)
                {
                    // Change previously-selected listbox item color to unselected color
                    ((Text)menuListBox.Items[previousSelectedIndex].Child).ForeColor = unselectedItemColor;
                    menuListBox.Items[previousSelectedIndex].Background = menuListBox.Background;
                }

                // Change newly-selected listbox item color to selected color and background
                ((Text)menuListBox.Items[e.SelectedIndex].Child).ForeColor = selectedItemColor;
                menuListBox.Items[e.SelectedIndex].Background = selectedBackground;
            };
            #endregion

            #region Menu Items
            // Menu items from resources
            string[] menuItems = new string[4] { Resources.GetString(Resources.StringResources.RookieLevel),
                                                 Resources.GetString(Resources.StringResources.AdvancedLevel),
                                                 Resources.GetString(Resources.StringResources.ExtremeLevel),
                                                 Resources.GetString(Resources.StringResources.ViewHighScore)};
            // Add items into listbox
            foreach(string item in menuItems)
            {
                Text itemText = new Text(Resources.GetFont(Resources.FontResources.NinaB), item);
                itemText.Width = this.Width - 40;
                itemText.ForeColor = unselectedItemColor;
                itemText.TextAlignment = TextAlignment.Center;
                itemText.SetMargin(5);

                ListBoxItem listBoxItem = new ListBoxItem();
                listBoxItem.Background = menuListBox.Background;
                listBoxItem.Child = itemText;

                menuListBox.Items.Add(listBoxItem);
            }

            menuListBox.SelectedIndex = 0;
            #endregion

            // Add all controls to stack panel
            StackPanel mainStackPanel = new StackPanel(Orientation.Vertical);
            mainStackPanel.Children.Add(logoImage);
            mainStackPanel.Children.Add(menuListBox);

            this.Child = mainStackPanel;

            this.Visibility = Visibility.Visible;
            Buttons.Focus(menuListBox);
        }