gpt4 book ai didi

c# - 在 Window.SizeToContent = SizeToContent.WidthAndHeight 的情况下,窗口内容的布局不正确

转载 作者:行者123 更新时间:2023-11-30 16:48:59 24 4
gpt4 key购买 nike

我举了一个简单的例子。有一个工具窗口。它以网格为内容,具有三个区域。第一个区域是带有一些文本的文本框,第二个是标签,第三个是另一个文本框。 Grid的行高分别为:“*”、“30”、“*”。对于窗口,我设置了 SizeToContent = SizeToContent.WidthAndHeight。当我打开它时,第一个 TextBox 的高度比第二个大。当我尝试重新捕获窗口时,高度会按预期成比例。

有窗口的xaml:

 <Window
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"
mc:Ignorable="d"
x:Class="WpfApplication5.MainWindow"
Title="MainWindow" MinHeight="200" MinWidth="200"
DataContext="System.Data.DataSet" Width="291" d:DesignHeight="246"
WindowStyle="ToolWindow"
SizeToContent="WidthAndHeight">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="30"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBox x:Name="Text1" />
<Label Grid.Row="1" Content="SOME TEXT"/>
<TextBox x:Name="Text2" Grid.Row="2"/>
</Grid>
</Window>

和代码背后:

using System.Data;
using System.Windows;

namespace WpfApplication5
{
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();

Text1.Text =
"some text\nsome text\nsome text\nsome text\nsome text\nsome text\nsome text\nsome text\nsome text\n";
}
}
}

我的问题是:如何修正这些跳跃高度?最初高度应该成比例。

初始图像:

enter image description here

调整大小后(加载我想要的):

enter image description here

最佳答案

您的示例可以正常工作。大小是从 child 到根计算的。因此,您的 TextBox 包含高度较大的内容,然后 Grid 使第一行和第三行相等,然后 Window.SizeToContent = "WidthAndHeight" 将所有尺寸调整/最小化到其内容的尺寸。因此,您会看到没有可用空间的窗口。

当您触发窗口调整大小时,规则 SizeToContent 变为 false,因为您手动设置窗口大小并且它可以重新计算。因此网格行变得相等。

要检查它,您可以:

  1. 删除 SizeToContent="WidthAndHeight",您将看到具有与预期相同的行高的网格
  2. 或添加例如KeyDown 事件如

    private void UIElement_OnKeyDown(object sender, KeyEventArgs e)
    {
    SizeToContent = SizeToContent.WidthAndHeight;
    }

    所以一开始网格行的大小会不同,调整大小后,它们会变得相等,但是如果你按任意键,窗口会立即最小化他的大小,网格行将不相等。

关于c# - 在 Window.SizeToContent = SizeToContent.WidthAndHeight 的情况下,窗口内容的布局不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37462921/

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