4

問題: 水平方向のワードラップ機能と垂直方向の自動拡張機能を持つテキスト ボックスの設定がありません。コードを書くことでそれを実現したいと考えています。wordwrap を使用してマウスの dblclick でテキスト ボックスを作成する次のコードを作成しました。

        TextBox text2 = new TextBox();
        text2.Width = 500;
        text2.Visibility = Visibility.Visible;
        text2.Focus();
        text2.Height = 30;
        text2.HorizontalAlignment = HorizontalAlignment.Left;
        text2.VerticalAlignment = VerticalAlignment.Top;
        Point p = e.GetPosition(LayoutRoot);
        text2.Margin = new Thickness(p.X, p.Y, 0, 0);
        LayoutRoot.Children.Add(text2);

ただし、テキストボックスは縦に伸びません。誰かが私が望むことを正確に行うための C# のコードを提案してもらえますか?

4

3 に答える 3

5

これを使ってみてください

        Grid grid = new Grid();
        grid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto });
        grid.RowDefinitions.Add(new RowDefinition());

        TextBox textBox = new TextBox() { Width = 100, TextWrapping = TextWrapping.Wrap };

        textBox.SetValue(Grid.RowProperty, 0);
        grid.Children.Add(textBox);
        window.Content = grid;

ここで、window は Window(root) に割り当てられた名前です。

于 2009-11-23T14:42:09.500 に答える
0

探している成長を達成する 1 つの方法は、テキスト ボックス内のテキストが変更されるたびに実行される文字列測定メカニズムを使用することです。コンテンツの変更に応じて、テキスト ボックスを測定してサイズを変更するだけです。

于 2009-11-23T14:35:41.027 に答える
0

これを試しましたか?

text2.Height = double.NaN; // or don't set the property, but some custom styles might give a default value ..
text2.TextWrapping = TextWrapping.Wrap;
text2.MinHeight = 30; // or not if you want the styles default

それ以外の

text2.Height = 30;

設定しないか double.NaN を使用することは、xaml で「Auto」を使用することと同じです。

于 2009-11-23T14:39:18.633 に答える