コード例 #1
0
        private void LoadFontCombo()
        {
            // Display the fonts in sorted order.
            var fontNames = new List <string>();

            fontNames.AddRange(Browser.NamesOfFontsThatBrowserCanRender());
            fontNames.Sort();
            var defaultFont = CollectionSettings.GetDefaultFontName();

            foreach (var font in fontNames)
            {
                _fontCombo.Items.Add(font);
                if (font == defaultFont)
                {
                    _fontCombo.SelectedItem = font;
                }
            }

            // Make the font combobox wide enough to display the longest value.
            int width = _fontCombo.DropDownWidth;

            using (Graphics g = _fontCombo.CreateGraphics())
            {
                Font font = _fontCombo.Font;
                int  vertScrollBarWidth = (_fontCombo.Items.Count > _fontCombo.MaxDropDownItems) ? SystemInformation.VerticalScrollBarWidth : 0;

                width = (from string s in _fontCombo.Items select(int) g.MeasureString(s, font).Width).Concat(new[] { width }).Max() + vertScrollBarWidth;
            }
            _fontCombo.DropDownWidth = width;
        }