gpt4 book ai didi

c# - 仅自动调整某些控件

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:34 27 4
gpt4 key购买 nike

我在 WPF GUI 上工作,我希望窗口根据内容自动调整大小,但不是所有内容:我有一些不同的按钮和其他控件,我想自动调整宽度。如果我向列表框中添加一个长项,我希望窗口保持相同大小。

示例代码:

<Window x:Class="QuickieWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" SizeToContent="WidthAndHeight" ResizeMode="CanMinimize">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal">
<Button Width="100" Content="Foo" Click="Button_Click"/>
<Button Width="100" Content="Bar" Click="Button_Click"/>
<Button Width="100" Content="Baz" Click="Button_Click"/>
</StackPanel>
<ListBox Grid.Row="1" Name="TheList" Height="100"/>
</Grid>
</Window>

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}

private void Button_Click(object sender, RoutedEventArgs e)
{
string str = "This is a really long text item that will be wider than the " +
"three buttons. I want a horizontal scrollbar on the listbox, not a wider " +
"window. I want the window to size to the buttons, not to this listbox.";
this.TheList.Items.Add(str);
}
}

最初,窗口的大小适合按钮:

enter image description here

在列表框中添加一个长项目后,我目前得到这个:

enter image description here

但我宁愿得到这个:

enter image description here

(我通过在列表框上设置 MaxWidth 来完成最后一个屏幕截图,但这对于完整的应用程序来说不是一个好的解决方案:在完整的应用程序中,它不仅仅是三个按钮;它是按钮、图标、文本框、标签等等,我希望窗口自动调整大小以适应整个困惑,而不是调整到底部的列表框。)

最佳答案

您可以将不想自动调整大小的内容的宽度绑定(bind)到您执行的内容的实际宽度,例如:

<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" x:Name="panel">
<Button Width="100"
Content="Foo"
Click="Button_Click" />
<Button Width="100"
Content="Bar"
Click="Button_Click" />
<Button Width="100"
Content="Baz"
Click="Button_Click" />
</StackPanel>
<ListBox Grid.Row="1"
Name="TheList"
Height="100" Width="{Binding ElementName=panel, Path=ActualWidth}" />
</Grid>

在这里,我将 ListBox 的宽度绑定(bind)到带有按钮的面板的实际宽度,在这种情况下,它实现了您想要的。

关于c# - 仅自动调整某些控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36729048/

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