在UWP应用程序中,是否可以使用某些文本的大小和字体来计算TextBox在不滚动的情况下保存该文本所需的大小?
这在设计整体布局时非常有用 - 根据TextBox的大小,可能会切换到不同的配置。
我将在代码中完成所有这些操作,而不是在xaml中,因为我的应用程序是跨平台的,并且其图形布局大脑位于与平台无关的部分。
如果无法知道尺寸,即使知道它的尺寸也不错,如果可能的话。
答案 0 :(得分: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个Grid x:Name =" MainGrid"