【问题标题】:Calculate TextBox size from text size without actual TextBox从没有实际文本框的文本大小计算文本框大小
【发布时间】:2016-12-27 22:18:11
【问题描述】:

在 UWP 应用中,是否可以使用某些文本的大小和字体来计算 TextBox 需要多大才能容纳该文本而不滚动?

这对于设计整体布局很有用——根据文本框的大小,可能会切换到不同的配置。

我将在代码中而不是在 xaml 中完成所有这些工作,因为我的应用程序是跨平台的,并且它的图形布局大脑位于与平台无关的部分。

如果不可能知道尺寸,那么即使知道它的任何一个尺寸都很好,如果可能的话。

【问题讨论】:

    标签: c# textbox uwp measure


    【解决方案1】:

    试试这个:

    public sealed partial class MainPage
    {
        private TextBox _textBox;
        private TextBlock _textBlock;
    
        public MainPage()
        {
            InitializeComponent();
            Loaded += MainPage_Loaded;
        }
        private void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
            _textBlock = new TextBlock
            {
                Margin = new Thickness(10000, 10000, 0, 0),
            };
            MainGrid.Children.Add(_textBlock);
    
            _textBox = new TextBox
            {
                Width = _textBlock.ActualWidth + 64, //is for clear button space
                Height = _textBlock.ActualHeight,
            };
            _textBox.TextChanged += _textBox_TextChanged;
            MainGrid.Children.Add(_textBox);
        }
    
        private void _textBox_TextChanged(object sender, TextChangedEventArgs e)
        {
            _textBlock.Text = _textBox.Text;
            _textBox.Width = _textBlock.ActualWidth + 64;
            _textBox.Height = _textBlock.ActualHeight;
        }
    }
    

    这不是完美的解决方案,但可能适合。

    您只需在屏幕外的某个地方创建 textBlock 并遵循其大小。

    XAML 只有 1 个网格 x:Name="MainGrid"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-25
      • 2013-10-08
      • 2010-09-26
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-09
      相关资源
      最近更新 更多