如何使窗口大小适应其内容大小,反之亦然?

问题描述 投票:0回答:0

这对我来说是个难题,因为我对此一团糟。 所以让我们想象一下有一个窗口 SizeToContent="WidthAndHeight"

<Window x:Class="Test.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:Test"
    mc:Ignorable="d" Title="MainWindow" SizeToContent="WidthAndHeight" >
    
    <ListBox Name="lbxInfo" Margin="10" FontSize="30" Grid.Row="0"/>
</Window>

所以窗口必须适应它的内容。简单易行。

但是困难的部分来了。内容是可变的并适应拉伸窗口大小。 所以最大的弦会被正确拉伸。

lbxInfo.Items.Add(new TextBox() { Text="AAA", Background = Brushes.Aqua, HorizontalContentAlignment= HorizontalAlignment.Stretch  });
lbxInfo.Items.Add(new TextBox() { Text = "BBB BBB", Background = Brushes.LavenderBlush, HorizontalContentAlignment = HorizontalAlignment.Stretch });
lbxInfo.Items.Add(new TextBox() { Text = "CCC CCC CCC", Background = Brushes.Lime, HorizontalContentAlignment = HorizontalAlignment.Stretch });

这是结果:

相反,我希望是这个:

所以我希望每个元素都能拉伸(调整大小/调整)到其中最大的元素。

实现我认为的唯一方法是首先循环计算最大的元素,然后根据结果设置窗口的大小。

有什么有效的方法吗?

c# wpf textbox window-resize stretch
© www.soinside.com 2019 - 2024. All rights reserved.