gpt4 book ai didi

c# - 获取堆栈面板中文本 block 的最大宽度

转载 作者:太空宇宙 更新时间:2023-11-03 10:57:49 25 4
gpt4 key购买 nike

单击按钮时,我正在阅读一个 CSV 文件,将“,”替换为“\t”并将其写入堆栈面板。

    private void Button_Click(object sender, RoutedEventArgs e)
{
for (int i = 0; i < r.variables.Count; i++)
{
_people.Add(new TextBlock() { Text = r.variables[i], HorizontalAlignment = System.Windows.HorizontalAlignment.Right });//.ToString() });
StackPanel stp = new StackPanel() { Orientation = Orientation.Vertical };

TextBlock tb = new TextBlock() {Text = r.variables[i]};

stp.Children.Add(tb);

_secondStack.Children.Add(stp);
}

foreach (StackPanel sp in _secondStack.Children)
{

foreach (TextBlock tb in sp.Children)
{
Size desiredSize = new Size();
tb.Measure(this.availableSize);
desiredSize = tb.DesiredSize;
}
}
}

从文件中,有些包含比其他字符串更长的字符串,因此标题中的 TextBlocks 比下面的 TextBlocks 更宽。

如何获取嵌入式 StackPanel 中最宽 TextBlock 的宽度并将嵌入式 StackPanel 中所有 TextBlock 的宽度设置为该宽度?

最佳答案

填充 StackPanel 后,这就是您获得最大 Width 并为所有其他 TextBox 设置它的方式:

 double largestWidth = stackPanel.Children.OfType<TextBox>().OrderByDescending(
textbox => textbox.ActualWidth).First().ActualWidth;

foreach (var textBox in stackPanel.Children.OfType<TextBox>())
{
textBox.ActualWidth = largestWidth;
}

关于c# - 获取堆栈面板中文本 block 的最大宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18776066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com