2016-12-27 4 views
0

В приложении UWP можно ли использовать размер и шрифт какого-либо текста, чтобы рассчитать, насколько большой TextBox должен был содержать этот текст без прокрутки?Вычислить размер текстового поля без текста TextBox

Это может быть полезно при разработке общей компоновки - в зависимости от размера 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 Сетка х: Name = "MainGrid"

Смежные вопросы