public void show(MainWindow con, ListBox lb, string kto, string text, int tem) { if (!lb.CheckAccess()) { con.Dispatcher.Invoke(DispatcherPriority.Send, (Action)delegate { UserWiad itm = new UserWiad(); itm.Nick = kto; itm.Wiad = text; itm.Typ = tem; lb.Items.Add(itm); lb.ScrollIntoView(itm); }); } else { UserWiad itm = new UserWiad(); itm.Nick = kto; itm.Wiad = text; itm.Typ = tem; lb.Items.Add(itm); lb.ScrollIntoView(itm); } }
void Target_Loaded(object sender, RoutedEventArgs e) { if (Target.Items.Count > 0) { Target.ScrollIntoView(Target.Items[Target.Items.Count - 1]); } Target.IsVisibleChanged += new DependencyPropertyChangedEventHandler(Target_IsVisibleChanged); }
public void ClickPrev() { FlagPrev = false; OldNumber = CurrentPlayIndex; if (CurrentPlayIndex == 0) { CurrentPlayIndex = CurrentListBox.Items.Count - 1; } else { CurrentPlayIndex = CurrentPlayIndex - 1; } CurrentListBox.ScrollIntoView(CurrentListBox.Items[CurrentPlayIndex]); Play(CurrentListBox); }
/// <summary> /// This method will be called when the ListBox should /// be scrolled to the given index /// </summary> /// <param name="listBox">The ListBox which should be scrolled</param> /// <param name="index">The index of the item to which it should be scrolled</param> public static void OnAutoScrollToCurrentItem(ListBox listBox, int index) { if (listBox != null && listBox.Items != null && listBox.Items.Count > index && index >= 0) { listBox.ScrollIntoView(listBox.Items[index]); } }
public void SelectionChanged(ListBox sender) { SelectedJumpers = new BindableCollection <Jumper>(sender.SelectedItems.Cast <Jumper>()); if (SelectedJumpers.Count == 1) { sender.ScrollIntoView(sender.SelectedItem); } }
private void AddNewFileType(ListBox control) { ICollection<FileTypeEntry> source = (ICollection<FileTypeEntry>)control.ItemsSource; FileTypeEntry item = new FileTypeEntry(this, ""); source.Add(item); control.SelectedItem = item; control.ScrollIntoView(item); control.Focus(); item.IsEditing = true; }
private bool SelectListItem(System.Windows.Controls.ListBox list, object value) { ItemCollection itemList = list.Items; // Perform a binary search for the item. int first = 0; int limit = itemList.Count; while (first < limit) { int i = first + (limit - first) / 2; IComparable item = (IComparable)(itemList[i]); int comparison = item.CompareTo(value); if (comparison < 0) { // Value must be after i first = i + 1; } else if (comparison > 0) { // Value must be before i limit = i; } else { // Exact match; select the item. list.SelectedIndex = i; itemList.MoveCurrentToPosition(i); list.ScrollIntoView(itemList[i]); return(true); } } // Not an exact match; move current position to the nearest item but don't select it. if (itemList.Count > 0) { int i = Math.Min(first, itemList.Count - 1); itemList.MoveCurrentToPosition(i); list.ScrollIntoView(itemList[i]); } return(false); }
void Collection_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { if (e.Action != NotifyCollectionChangedAction.Add || e.NewItems == null || e.NewItems.Count < 1) { return; } // Technique FindScroll Border scroll_border = VisualTreeHelper.GetChild(Target, 0) as Border; if (scroll_border is Border) { ScrollViewer scroll = scroll_border.Child as ScrollViewer; if (scroll is ScrollViewer) { scroll.ScrollToBottom(); return; } } // Si jamais ca ne fonctionne, on prend cette méthode la. Target.ScrollIntoView(e.NewItems[e.NewItems.Count - 1]); }
private void SelectItem(ListBox listBox) { foreach (var item in listBox.Items) { if ((((KeyValuePair<string, string>)item).Key) == _textBox.Text) { listBox.SelectedItem = item; listBox.ScrollIntoView(listBox.SelectedItem); listBox.Focus(); break; } } }
private bool ListBoxMoveSelectedDown(ListBox list) { if (list.Items.Count > 0 && list.SelectedIndex < (list.Items.Count - 1)) { int selected_index = list.SelectedIndex; var saved = list.Items[selected_index]; list.Items[selected_index] = list.Items[selected_index + 1]; list.Items[selected_index + 1] = saved; list.SelectedIndex = selected_index + 1; list.ScrollIntoView(list.Items[selected_index + 1]); return true; } return false; }
private bool ListBoxRemoveSelected(ListBox list) { if (list.Items.Count > 0 && list.SelectedIndex >= 0) { int selected = list.SelectedIndex; list.Items.RemoveAt(selected); if (list.Items.Count > selected) list.SelectedIndex = selected; else list.SelectedIndex = (list.Items.Count - 1); if (list.SelectedIndex > -1) list.ScrollIntoView(list.Items[list.SelectedIndex]); return true; } return false; }
/// <summary> /// This method will be called when the ListBox should /// be scrolled to the end /// </summary> /// <param name="listBox">The ListBox which should be scrolled</param> public static void OnAutoScrollToNewItem( ListBox listBox ) { if( listBox != null && listBox.Items != null && listBox.Items.Count > 0 && listBox.SelectedItem == listBox.Items[0] ) listBox.ScrollIntoView( listBox.Items[listBox.Items.Count - 1] ); }
public static void UpdateLayout(ListBox item, bool isfirst) { try { item.UpdateLayout(); if (isfirst) item.ScrollIntoView(item.Items.First()); else item.ScrollIntoView(item.Items.Last()); item.UpdateLayout(); } catch (Exception ex) { //BugSenseHandler.Instance.SendExceptionAsync(ex); //MessageBox.Show(ex.Message); } }
public Capture(ListBox listBox) { this.listBox = listBox; incc = listBox.ItemsSource as INotifyCollectionChanged; if (incc != null) { incc.CollectionChanged += incc_CollectionChanged; if (listBox.Items.Count > 0) { var scrollViewer = GetDescendantByType(listBox, typeof(ScrollViewer)) as ScrollViewer; if (scrollViewer.ScrollableHeight < scrollViewer.VerticalOffset + 50) { listBox.ScrollIntoView(listBox.Items[listBox.Items.Count - 1]); listBox.SelectedItem = listBox.Items[listBox.Items.Count - 1]; } } } }
void MoveListPosition(ListBox listBox, int distance) { int i = listBox.Items.CurrentPosition + distance; if (i >= 0 && i < listBox.Items.Count) { listBox.Items.MoveCurrentToPosition(i); listBox.SelectedIndex = i; listBox.ScrollIntoView(listBox.Items[i]); } }
bool Select(ListBox list, object item) { try { if (item == null) return false; list.SelectedItem = item; list.ScrollIntoView(item); return true; } catch { return false; } }
private void AddLogItem(ListBox listbox, string log) { listbox.Items.Add(log); listbox.ScrollIntoView(listbox.Items.GetItemAt(listbox.Items.Count - 1)); }
void ShowListBox(object sender, int count) { //int line = 0; //try { if (listBox == null) { listBox = new ListBox(); if (count >= 5) { ScrollViewer.SetVerticalScrollBarVisibility(listBox, ScrollBarVisibility.Visible); } listBox.SelectionChanged += (s, e) => { if (listBox.SelectedItem != null && listBox.Items.Contains(listBox.SelectedItem)) { try { listBox.ScrollIntoView(listBox.SelectedItem); } catch { } } }; listBox.MinWidth = textBox.RenderSize.Width; ArmoryLoadDialog dialog = (ArmoryLoadDialog)sender; //var canvas = (Grid)System.Windows.Application.Current.RootVisual; var canvas = (Grid)dialog.LayoutRoot; var transform = textBox.TransformToVisual(canvas); var topLeft = transform.Transform(new Point(0, 0)); Canvas.SetLeft(listBox, topLeft.X); Canvas.SetTop(listBox, topLeft.Y + textBox.RenderSize.Height); canvas.Children.Add(listBox); } if (count >= 5) { count = 5; } listBox.MaxHeight = count * 21; //} catch (Exception ex) { //new Rawr.DPSWarr.ErrorBoxDPSWarr("AutoComplete issue", ex.Message, "ShowListBox", "No Additional Info", ex.StackTrace, line); //} }
/// <summary>アイテムを上下に一つ移動</summary> public bool bxMoveItems(ListBox box, int direction, IList boxItemsSource = null) { try { if (box == null || box.SelectedIndex < 0) return false; var boxItems = boxItemsSource ?? box.Items; var selected = box.SelectedItemsList();//連続移動の視点固定のため順番保持 int iCount = boxItems.Count;//固定 var r = direction >= 0 ? (Func<int, int>)(i => iCount - 1 - i) : (i => i); for (int i = 0; i < boxItems.Count; i++) { var item = boxItems[r(i)]; if (box.SelectedItems.Contains(item) == true) { boxItems.RemoveAt(r(i)); boxItems.Insert(r((i + iCount - 1) % iCount), item); if (i == 0) break; } } box.UnselectAll(); TargetBoxItemsRefresh(box, boxItemsSource); box.SelectedItemsAdd(selected); box.ScrollIntoView(direction < 0 ? selected[0] : selected.Last()); } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } return true; }
static void ScrollListBoxItemIntoView(ListBox listBox, object item) { listBox.ScrollIntoView(item); }
public void Initialize() { try { double aspectRatio = Math.Round((double)ClientGameEngine.Get().ClientDimensions.Width / (double)ClientGameEngine.Get().ClientDimensions.Height, 2, MidpointRounding.AwayFromZero); string UIComponentPath = "resources\\UI\\PreGameLobby\\"; string ratioPath = string.Empty; if (aspectRatio == 1.33) ratioPath = "4x3\\"; else ratioPath = "16x9\\"; //background BitmapImage bitmapImage = new BitmapImage(); bitmapImage = new BitmapImage(new Uri(UIComponentPath + ratioPath + "Background.png", UriKind.RelativeOrAbsolute)); m_BackgroundBrush = new ImageBrush(bitmapImage); ClientGameEngine.Get().AllPlayersReady.ValueChanged += (from, to) => { if (to) { Action action = () => { m_StartEnabledImage.Visibility = Visibility.Visible; m_StartEnabledImage.IsEnabled = true; m_StartDisabledImage.Visibility = Visibility.Hidden; }; ClientGameEngine.Get().ExecuteOnUIThread(action); } else { Action action = () => { m_StartDisabledImage.Visibility = Visibility.Visible; m_StartEnabledImage.IsEnabled = false; m_StartEnabledImage.Visibility = Visibility.Hidden; }; ClientGameEngine.Get().ExecuteOnUIThread(action); } }; //Chat Text Box m_ChatMessageBox = new TextBox(); m_ChatMessageBox.Opacity = 0.75; m_ChatMessageBox.FontFamily = new FontFamily("Papyrus"); m_ChatMessageBox.FontSize = 18; m_ChatMessageBox.KeyDown += (s, ev) => { if (ev.Key == Key.Enter) { if (m_ChatMessageBox.Text.Trim() != string.Empty) { GameChatMessage chat = new GameChatMessage() { Contents = m_ChatMessageBox.Text.Trim() }; m_ChatMessageBox.Text = ""; ClientGameEngine.Get().SendMessageToServer(chat); } } }; //Chat Message OK m_SendButton = new Button(); m_SendButton.FontFamily = new FontFamily("Papyrus"); m_SendButton.FontSize = 18; m_SendButton.Content = "Send"; m_SendButton.Click += (s, ev) => { if (m_ChatMessageBox.Text.Trim() != string.Empty) { GameChatMessage chat = new GameChatMessage() { Contents = m_ChatMessageBox.Text.Trim() }; m_ChatMessageBox.Text = ""; ClientGameEngine.Get().SendMessageToServer(chat); } }; //Chat messages m_ChatMessagesListBox = new ListBox(); m_ChatMessagesListBox.ItemsSource = ClientGameEngine.Get().ChatMessageCollection; m_ChatMessagesListBox.Opacity = 0.75; m_ChatMessagesListBox.FontFamily = new FontFamily("Papyrus"); m_ChatMessagesListBox.FontSize = 14; ClientGameEngine.Get().ChatMessageCollection.CollectionChanged += (s, ev) => { if (ev.NewItems != null) { m_ChatMessagesListBox.ScrollIntoView(ev.NewItems[0]); } }; //StartEnabled bitmapImage = new BitmapImage(new Uri(UIComponentPath + "Start.png", UriKind.RelativeOrAbsolute)); m_StartEnabledImage = new Image(); m_StartEnabledImage.Source = bitmapImage; m_StartEnabledImage.Width = bitmapImage.PixelWidth; m_StartEnabledImage.Height = bitmapImage.PixelHeight; m_StartEnabledImage.Visibility = Visibility.Hidden; m_StartEnabledImage.IsEnabled = false; m_StartEnabledImage.Name = "StartEnabled"; m_StartEnabledImage.MouseEnter += MenuOptionHover; m_StartEnabledImage.MouseLeave += MenuOptionHoverLost; m_StartEnabledImage.MouseDown += MenuOptionMouseDown; m_StartEnabledImage.MouseUp += MenuOptionMouseUp; //StartDisabled bitmapImage = new BitmapImage(new Uri(UIComponentPath + "StartFade.png", UriKind.RelativeOrAbsolute)); m_StartDisabledImage = new Image(); m_StartDisabledImage.Source = bitmapImage; m_StartDisabledImage.Width = bitmapImage.PixelWidth; m_StartDisabledImage.Height = bitmapImage.PixelHeight; m_StartDisabledImage.Visibility = Visibility.Visible; m_StartDisabledImage.Name = "StartDisabled"; //m_StartDisabledImage.MouseEnter += MenuOptionHover; //m_StartDisabledImage.MouseLeave += MenuOptionHoverLost; //m_StartDisabledImage.MouseDown += MenuOptionMouseDown; //m_StartDisabledImage.MouseUp += MenuOptionMouseUp; //LeaveEnabled bitmapImage = new BitmapImage(new Uri(UIComponentPath + "Leave.png", UriKind.RelativeOrAbsolute)); m_LeaveEnabledImage = new Image(); m_LeaveEnabledImage.Source = bitmapImage; m_LeaveEnabledImage.Width = bitmapImage.PixelWidth; m_LeaveEnabledImage.Height = bitmapImage.PixelHeight; m_LeaveEnabledImage.Visibility = System.Windows.Visibility.Visible; m_LeaveEnabledImage.Name = "LeaveEnabled"; m_LeaveEnabledImage.MouseEnter += MenuOptionHover; m_LeaveEnabledImage.MouseLeave += MenuOptionHoverLost; m_LeaveEnabledImage.MouseDown += MenuOptionMouseDown; m_LeaveEnabledImage.MouseUp += MenuOptionMouseUp; //LeaveDisabled bitmapImage = new BitmapImage(new Uri(UIComponentPath + "LeaveFade.png", UriKind.RelativeOrAbsolute)); m_LeaveDisabledImage = new Image(); m_LeaveDisabledImage.Source = bitmapImage; m_LeaveDisabledImage.Width = bitmapImage.PixelWidth; m_LeaveDisabledImage.Height = bitmapImage.PixelHeight; m_LeaveDisabledImage.Visibility = System.Windows.Visibility.Hidden; m_LeaveDisabledImage.Name = "LeaveDisabled"; //m_LeaveDisabledImage.MouseEnter += MenuOptionHover; //m_LeaveDisabledImage.MouseLeave += MenuOptionHoverLost; //m_LeaveDisabledImage.MouseDown += MenuOptionMouseDown; //m_LeaveDisabledImage.MouseUp += MenuOptionMouseUp; //Ready bitmapImage = new BitmapImage(new Uri(UIComponentPath + "Ready.png", UriKind.RelativeOrAbsolute)); m_ReadyImage = new Image(); m_ReadyImage.Source = bitmapImage; m_ReadyImage.Width = bitmapImage.PixelWidth; m_ReadyImage.Height = bitmapImage.PixelHeight; m_ReadyImage.Visibility = System.Windows.Visibility.Hidden; m_ReadyImage.Name = "Ready"; m_ReadyImage.MouseEnter += MenuOptionHover; m_ReadyImage.MouseLeave += MenuOptionHoverLost; m_ReadyImage.MouseDown += MenuOptionMouseDown; m_ReadyImage.MouseUp += MenuOptionMouseUp; //NotReady bitmapImage = new BitmapImage(new Uri(UIComponentPath + "NotReady.png", UriKind.RelativeOrAbsolute)); m_NotReadyImage = new Image(); m_NotReadyImage.Source = bitmapImage; m_NotReadyImage.Width = bitmapImage.PixelWidth; m_NotReadyImage.Height = bitmapImage.PixelHeight; m_NotReadyImage.Visibility = System.Windows.Visibility.Hidden; m_NotReadyImage.Name = "NotReady"; m_NotReadyImage.MouseEnter += MenuOptionHover; m_NotReadyImage.MouseLeave += MenuOptionHoverLost; m_NotReadyImage.MouseDown += MenuOptionMouseDown; m_NotReadyImage.MouseUp += MenuOptionMouseUp; //Player list m_PlayerListView = new ListView(); m_PlayerListView.Opacity = 0.75; m_PlayerGridView = new GridView(); m_PlayerGridView.AllowsColumnReorder = false; m_ReadyColumn = new GridViewColumn(); m_ReadyColumn.DisplayMemberBinding = new Binding("IsReady"); m_ReadyColumn.Header = "Ready"; m_PlayerGridView.Columns.Add(m_ReadyColumn); m_NameColumn = new GridViewColumn(); m_NameColumn.DisplayMemberBinding = new Binding("Name"); m_NameColumn.Header = "Name"; m_PlayerGridView.Columns.Add(m_NameColumn); m_PlayerListView.View = m_PlayerGridView; m_PlayerListView.ItemsSource = ClientGameEngine.Get().PlayerCollection; // Chat messages m_ChatMessagesListBox.Opacity = 0.75; m_ChatMessagesListBox.FontFamily = new FontFamily("Papyrus"); m_ChatMessagesListBox.FontSize = 14; //Army selection buttons //Undead Army m_UndeadArmyButton = new Button(); m_UndeadArmyButton.FontFamily = new FontFamily("Papyrus"); m_UndeadArmyButton.FontSize = 18; m_UndeadArmyButton.Content = "Undead Army"; m_UndeadArmyButton.Click += (s, ev) => { m_CurrentArmyLabel.Content = "Undead Selected"; if (!m_NotReadyImage.IsVisible) { m_NotReadyImage.Visibility = Visibility.Hidden; m_ReadyImage.Visibility = Visibility.Visible; } m_PlayerReadyMessage.ArmyType = Framework.Unit.Army.ArmyTypeEnum.Undead; }; //Alliance Army m_AllianceArmyButton = new Button(); m_AllianceArmyButton.FontFamily = new FontFamily("Papyrus"); m_AllianceArmyButton.FontSize = 18; m_AllianceArmyButton.Content = "Alliance Army"; m_AllianceArmyButton.Click += (s, ev) => { m_CurrentArmyLabel.Content = "Alliance Selected"; if (!m_NotReadyImage.IsVisible) { m_NotReadyImage.Visibility = Visibility.Hidden; m_ReadyImage.Visibility = Visibility.Visible; } m_PlayerReadyMessage.ArmyType = Framework.Unit.Army.ArmyTypeEnum.Alliance; }; //Beast Army m_BeastArmyButton = new Button(); m_BeastArmyButton.FontFamily = new FontFamily("Papyrus"); m_BeastArmyButton.FontSize = 18; m_BeastArmyButton.Content = "Beast Army"; m_BeastArmyButton.Click += (s, ev) => { m_CurrentArmyLabel.Content = "Beasts Selected"; if (!m_NotReadyImage.IsVisible) { m_NotReadyImage.Visibility = Visibility.Hidden; m_ReadyImage.Visibility = Visibility.Visible; } m_PlayerReadyMessage.ArmyType = Framework.Unit.Army.ArmyTypeEnum.Beast; }; //Placeholder Army selected label m_CurrentArmyLabel = new Label(); m_CurrentArmyLabel.Content = "No Army Selected"; m_PlayerReadyMessage = new PlayerReadyMessage(); } catch (Exception ex) { throw ex; } }
public void Initialize() { InGameEngine.InGameEngine.Get(); //Chat Text Box m_ChatMessageBox = new TextBox(); m_ChatMessageBox.Opacity = 0.75; m_ChatMessageBox.FontFamily = new FontFamily("Papyrus"); m_ChatMessageBox.FontSize = 12; m_ChatMessageBox.KeyDown += (s, ev) => { if (ev.Key == Key.Enter) { if (m_ChatMessageBox.Text.Trim() != string.Empty) { GameChatMessage chat = new GameChatMessage() { Contents = m_ChatMessageBox.Text.Trim() }; m_ChatMessageBox.Text = ""; ClientGameEngine.Get().SendMessageToServer(chat); } } }; m_EndTurnButton = new Button { FontFamily = new FontFamily("Papyrus"), FontSize = 18, Content = "End Turn" }; m_EndTurnButton.Click += (s, ev) => { if (InGameEngine.InGameEngine.Get().MoveList.Count > 0) { ClientGameEngine.Get().SendMessageToServer((new EndMoveTurnMessage() { Moves = InGameEngine.InGameEngine.Get().MoveList })); } }; m_UITopImage = new Image(); BitmapImage bimg = new BitmapImage(new Uri(@"resources\UI\Game\TopBar.png", UriKind.RelativeOrAbsolute)); m_UITopImage.Source = bimg; m_UITopImage.Width = bimg.PixelWidth; m_UITopImage.Height = bimg.PixelHeight; m_UILeftImage = new Image(); bimg = new BitmapImage(new Uri(@"resources\UI\Game\LeftBar.png", UriKind.RelativeOrAbsolute)); m_UILeftImage.Source = bimg; m_UILeftImage.Width = bimg.PixelWidth; m_UILeftImage.Height = bimg.PixelHeight; m_UIRightImage = new Image(); bimg = new BitmapImage(new Uri(@"resources\UI\Game\RightBar.png", UriKind.RelativeOrAbsolute)); m_UIRightImage.Source = bimg; m_UIRightImage.Width = bimg.PixelWidth; m_UIRightImage.Height = bimg.PixelHeight; m_UIBottomImage = new Image(); bimg = new BitmapImage(new Uri(@"resources\UI\Game\BottomBar.png", UriKind.RelativeOrAbsolute)); m_UIBottomImage.Source = bimg; m_UIBottomImage.Width = bimg.PixelWidth; m_UIBottomImage.Height = bimg.PixelHeight; //Menu Button m_MenuButton = new Button(); m_MenuButton.FontFamily = new FontFamily("Papyrus"); m_MenuButton.FontSize = 18; m_MenuButton.Content = "Menu"; m_MenuButton.Click += (s, ev) => { }; //Chat messages m_ChatMessagesListBox = new ListBox(); m_ChatMessagesListBox.ItemsSource = ClientGameEngine.Get().ChatMessageCollection; m_ChatMessagesListBox.Opacity = 0.75; m_ChatMessagesListBox.FontFamily = new FontFamily("Papyrus"); m_ChatMessagesListBox.FontSize = 12; ClientGameEngine.Get().ChatMessageCollection.CollectionChanged += (s, ev) => { if (ev.NewItems != null) { m_ChatMessagesListBox.ScrollIntoView(ev.NewItems[0]); } }; //unit stats m_UnitStatsGroupBox = new GroupBox(); m_UnitStatsGroupBox.Opacity = 0.75; m_UnitStatsGroupBox.FontFamily = new FontFamily("Papyrus"); m_UnitStatsGroupBox.FontSize = 12; }
private static void RefreshListAsync(TextBox textBox, ListBox listBox, string word, PrefixDictionary<KeyValuePair<string, object>[]> dict, Action callback, StringComparison comparison) { var matches = dict.Search(word, false).Select(found => found.Value).SelectMany(found => found).ToList(); listBox.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate{ var ev = (QueryCandidatesEventHandler)textBox.GetValue(QueryCandidatesProperty); if(ev != null){ var e = new QueryCandidatesEventArgs(word); foreach(var del in ev.GetInvocationList()){ del.DynamicInvoke(new object[]{textBox, e}); if(e.Candidates != null){ matches.AddRange(e.Candidates); } } } })); listBox.Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(delegate{ bool isIns = GetIsInsertAutomatically(textBox); listBox.ItemsSource = null; listBox.ItemsSource = matches.ToArray(); SetState(listBox, new AutoCompleteState(){TextBox = textBox}); listBox.SelectionChanged -= ListBox_SelectionChanged; if(isIns){ listBox.SelectionChanged += ListBox_SelectionChanged; } if(listBox.Items.Count > 0){ listBox.SelectedIndex = 0; listBox.ScrollIntoView(listBox.SelectedItem); } if(!isIns){ listBox.SelectionChanged += ListBox_SelectionChanged; } if(callback != null){ callback(); } })); }
// Update list based on selection. // Return true if there's an exact match, or false if not. static bool SelectListItem(ListBox list, object value) { ItemCollection itemList = list.Items; // Perform a binary search for the item. int first = 0; int limit = itemList.Count; while (first < limit) { int i = first + (limit - first) / 2; var item = (IComparable)(itemList[i]); int comparison = item.CompareTo(value); if (comparison < 0) { // Value must be after i first = i + 1; } else if (comparison > 0) { // Value must be before i limit = i; } else { // Exact match; select the item. list.SelectedIndex = i; itemList.MoveCurrentToPosition(i); list.ScrollIntoView(itemList[i]); return true; } } // Not an exact match; move current position to the nearest item but don't select it. if (itemList.Count > 0) { int i = Math.Min(first, itemList.Count - 1); itemList.MoveCurrentToPosition(i); list.ScrollIntoView(itemList[i]); } return false; }
private static void ScrollSelectedItemIntoView(ListBox listBox) { if (listBox == null) { return; } listBox.ScrollIntoView(listBox.SelectedItem); }
private void Listbox_Scroll_End(ListBox lsbox) { lsbox.ScrollIntoView(lsbox.Items[lsbox.Items.Count - 1]); }