3

Silverlight で文字間隔、カーニング、またはトラッキングを管理する最も簡単な方法は何ですか?

現在、文字間のスペースが大きすぎる Arial の大きなタイトルがあります。

ありがとう

4

2 に答える 2

2

それが最善の解決策であるかどうかはわかりませんが、私にとっては問題なく機能します:

SomeElement.Children.Add(LetterSpacing("Test", -3));

..。

private Canvas LetterSpacing(string String, double Space)
    {
        Canvas kpr = new Canvas();
        char[] lters = String.ToCharArray();
        Label[] lbls = new Label[lters.Length];

        for (int i = 0; i < lters.Length; i++)
        {
            Label tmpLbl = new Label();
            lbls[i] = tmpLbl;
            kpr.Children.Add(lbls[i]);
            lbls[i].Content = lters[i];
            lbls[i].FontSize = 30;
            lbls[i].FontFamily = new FontFamily("Verdana");
        }

        Dispatcher.BeginInvoke(
            () =>
            {
                double leftPos = 0;
                for (int j = 0; j < lbls.Length; j++)
                {
                    Canvas.SetLeft(lbls[j], 0 + leftPos);
                    leftPos += (lbls[j].ActualWidth - (Space * -1));
                }
            });

        return kpr;
    }
于 2011-07-28T15:28:16.160 に答える
0

現時点では、ランタイムでサポートされているとは思いません。テキストをパスとしてエクスポートして使用できます。

于 2010-12-15T00:53:51.817 に答える