0

コロンを縦にマーシャリングしたいのですが、文字サイズによっては隙間ができてしまいます。

stringExpression1.PadRight(11) すべてのラインに使用しています。

組み込みの方法はありmeasureますか、それともより見やすくするために文字の幅を変更する必要がありますか?

注: これらは文字列でなければなりません。次のようなビジュアル コンポーネントは使用できません。TextBlock

ここに画像の説明を入力

4

2 に答える 2

0

それは本当に役に立ちませんでしたが、希望はs.oneへの道を示しています

使用法

            List<string> items = new List<string>() {        
                          UIResources.Systolic, 
                          UIResources.Diastolic, 
                          UIResources.Pulse };

            var result = GetAlined(items);

ヘルパー コード

    const string EMPTYLINE="                                                                                                                                ";   
    public static int GetDefaultItemWidth(string text,System.Drawing.Font font=null)
    {
        if (font == null)
            font = System.Drawing.SystemFonts.DefaultFont;

        return System.Windows.Forms.TextRenderer.MeasureText(text, font).Width;
    }

    public static List<string> GetAlined(List<string> inputString)
    {
        double max = default(double);
        var spaceWidth = GetDefaultItemWidth(" ");
        foreach (var item in inputString)
        {
            var width = GetDefaultItemWidth(item);

            max = Math.Max(max, width);
        }

        List<string> resultItems = new List<string>(inputString.Count);
        foreach (var item in inputString)
        {
            var width = GetDefaultItemWidth(item);
            if ((max - width) > spaceWidth)
            {
                var spaceCount = (int)Math.Round((max - width) / spaceWidth);
                string resultItem = item;
                resultItem=EMPTYLINE.Take(spaceCount).ToString() + resultItem;
                resultItems.Add(resultItem);
            }
            else
            {
                resultItems.Add(item);
            }
        }
        return resultItems;
    }
于 2013-09-18T11:41:13.707 に答える