2016-12-27 86 views
0

在UWP应用程序中,是否可以使用某些文本的大小和字体来计算文本框需要保留多少文本而不滚动?根据文本大小计算文本框大小,但不包含实际的文本框

这可能对设计整体布局非常有用 - 根据TextBox的大小,可能会切换到其他配置。

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

如果知道大小是不可能的,即使知道它的任何一个尺寸都不错,如果可能的话。

回答

0

试试这个:

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”