ScrollToRow() public method

public ScrollToRow ( int row ) : void
row int
return void
示例#1
0
		public ListBoxSample ()
		{
			// Default list box
			
			ListBox list = new ListBox ();
			
			for (int n=0; n<100; n++)
				list.Items.Add ("Value " + n);
			
			PackStart (list, true);
			
			// Custom list box
			
			ListBox customList = new ListBox ();
			customList.GridLinesVisible = true;
			ListStore store = new ListStore (name, icon);
			customList.DataSource = store;
			customList.Views.Add (new ImageCellView (icon));
			customList.Views.Add (new TextCellView (name));
			
			var png = Image.FromResource (typeof(App), "class.png");
			
			for (int n=0; n<100; n++) {
				var r = store.AddRow ();
				store.SetValue (r, icon, png);
				store.SetValue (r, name, "Value " + n);
			}
			PackStart (customList, true);

			var spnValue = new SpinButton ();
			spnValue.MinimumValue = 0;
			spnValue.MaximumValue = 99;
			spnValue.IncrementValue = 1;
			spnValue.Digits = 0;
			var btnScroll = new Button ("Go!");
			btnScroll.Clicked += (sender, e) => customList.ScrollToRow((int)spnValue.Value);

			HBox scrollActBox = new HBox ();
			scrollActBox.PackStart (new Label("Scroll to Value: "));
			scrollActBox.PackStart (spnValue);
			scrollActBox.PackStart (btnScroll);
			PackStart (scrollActBox);
		}	
示例#2
0
        public ListBoxSample()
        {
            // Default list box

            ListBox list = new ListBox();

            for (int n = 0; n < 100; n++)
                list.Items.Add("Value " + n);

            list.KeyPressed += (sender, e) =>
            {
                if (e.Key == Key.Insert)
                {
                    int r = list.SelectedRow + 1;
                    list.Items.Insert(r, "Value " + list.Items.Count + 1);
                    list.ScrollToRow(r);
                    list.SelectRow(r);
                    list.FocusedRow = r;
                }
            };

            PackStart(list, true);

            // Custom list box

            ListBox customList = new ListBox();
            customList.GridLinesVisible = true;
            ListStore store = new ListStore(name, icon);
            customList.DataSource = store;
            customList.Views.Add(new ImageCellView(icon));
            customList.Views.Add(new TextCellView(name));

            var png = Image.FromResource(typeof(Application), "class.png");

            for (int n = 0; n < 100; n++)
            {
                var r = store.AddRow();
                store.SetValue(r, icon, png);
                store.SetValue(r, name, "Value " + n);
            }

            customList.KeyPressed += (sender, e) =>
            {
                if (e.Key == Key.Insert)
                {
                    var r = store.InsertRowAfter(customList.SelectedRow < 0 ? 0 : customList.SelectedRow);
                    store.SetValue(r, icon, png);
                    store.SetValue(r, name, "Value " + (store.RowCount + 1));
                    customList.ScrollToRow(r);
                    customList.SelectRow(r);
                    customList.FocusedRow = r;
                }
            };

            PackStart(customList, true);

            var spnValue = new SpinButton();
            spnValue.MinimumValue = 0;
            spnValue.MaximumValue = 99;
            spnValue.IncrementValue = 1;
            spnValue.Digits = 0;
            var btnScroll = new Button("Go!");
            btnScroll.Clicked += (sender, e) => customList.ScrollToRow((int)spnValue.Value);

            HBox scrollActBox = new HBox();
            scrollActBox.PackStart(new Label("Scroll to Value: "));
            scrollActBox.PackStart(spnValue);
            scrollActBox.PackStart(btnScroll);
            PackStart(scrollActBox);
        }
示例#3
0
        public DefaultFontSelectorBackend()
        {
            families = Font.AvailableFontFamilies.ToList();
            families.Sort();

            storeFonts               = new ListStore(dfamily, dfamilymarkup);
            listFonts.DataSource     = storeFonts;
            listFonts.HeadersVisible = false;
            listFonts.Columns.Add("Font", new TextCellView()
            {
                TextField = dfamily, MarkupField = dfamilymarkup
            });
            listFonts.MinWidth = 150;

            foreach (var family in families)
            {
                var row = storeFonts.AddRow();
                storeFonts.SetValues(row, dfamily, family, dfamilymarkup, "<span font=\"" + family + " " + (listFonts.Font.Size) + "\">" + family + "</span>");
            }

            storeFace               = new ListStore(dfaceName, dfaceMarkup, dfaceFont);
            listFace.DataSource     = storeFace;
            listFace.HeadersVisible = false;
            listFace.Columns.Add("Style", new TextCellView()
            {
                TextField = dfaceName, MarkupField = dfaceMarkup
            });
            listFace.MinWidth = 60;
            //listFace.HorizontalScrollPolicy = ScrollPolicy.Never;

            foreach (var size in DefaultFontSizes)
            {
                listSize.Items.Add(size);
            }

            spnSize.Digits         = 1;
            spnSize.MinimumValue   = 1;
            spnSize.MaximumValue   = 800;
            spnSize.IncrementValue = 1;
            PreviewText            = "The quick brown fox jumps over the lazy dog.";

            spnSize.ValueChanged += (sender, e) => {
                if (DefaultFontSizes.Contains(spnSize.Value))
                {
                    var row = Array.IndexOf(DefaultFontSizes, spnSize.Value);
                    listSize.ScrollToRow(row);
                    listSize.SelectRow(row);
                }
                else
                {
                    listSize.UnselectAll();
                }
                SetFont(selectedFont.WithSize(spnSize.Value));
            };

            SelectedFont = Font.SystemFont;
            UpdateFaceList(selectedFont);              // family change not connected at this point, update manually


            listFonts.SelectionChanged += (sender, e) => {
                if (listFonts.SelectedRow >= 0)
                {
                    var newFont = selectedFont.WithFamily(storeFonts.GetValue(listFonts.SelectedRow, dfamily));
                    UpdateFaceList(newFont);
                    SetFont(newFont);
                }
            };

            listFace.SelectionChanged += (sender, e) => {
                if (listFace.SelectedRow >= 0)
                {
                    SetFont(storeFace.GetValue(listFace.SelectedRow, dfaceFont).WithSize(selectedFont.Size));
                }
            };

            listSize.SelectionChanged += (sender, e) => {
                if (listSize.SelectedRow >= 0 && Math.Abs(DefaultFontSizes [listSize.SelectedRow] - spnSize.Value) > double.Epsilon)
                {
                    spnSize.Value = DefaultFontSizes[listSize.SelectedRow];
                }
            };

            VBox familyBox = new VBox();

            familyBox.PackStart(new Label("Font:"));
            familyBox.PackStart(listFonts, true);

            VBox styleBox = new VBox();

            styleBox.PackStart(new Label("Style:"));
            styleBox.PackStart(listFace, true);

            VBox sizeBox = new VBox();

            sizeBox.PackStart(new Label("Size:"));
            sizeBox.PackStart(spnSize);
            sizeBox.PackStart(listSize, true);

            HBox fontBox = new HBox();

            fontBox.PackStart(familyBox, true);
            fontBox.PackStart(styleBox, true);
            fontBox.PackStart(sizeBox);

            VBox mainBox = new VBox();

            mainBox.MinWidth  = 350;
            mainBox.MinHeight = 300;
            mainBox.PackStart(fontBox, true);
            mainBox.PackStart(new Label("Preview:"));
            mainBox.PackStart(previewText);

            Content = mainBox;
        }