首页 > 解决方案 > 窗口大小与我在设计器中的大小不符

问题描述

我不确定为什么每次我使用 WPF 时,事情总是比 WinForms 或 C/SDK 困难得多。

在这种情况下,窗口在设计器中看起来像这样。

在此处输入图像描述

但这是它在运行时的样子。

在此处输入图像描述

还有我的 XAML:

<Window x:Class="InsiderArticlesManager.AuthorWindow"
        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:InsiderArticlesManager"
        mc:Ignorable="d"
        Title="Set Author" Height="114" Width="341" WindowStartupLocation="CenterScreen" ResizeMode="NoResize" SourceInitialized="Window_SourceInitialized" WindowStyle="SingleBorderWindow">
    <StackPanel>
        <Label Name="lblPrompt" Content="Select Author:" Margin="5,5,5,0" />
        <ComboBox Name="UserList" DisplayMemberPath="Email" Margin="5,0,5,5"></ComboBox>
        <WrapPanel HorizontalAlignment="Right">
            <Button Name="btnOk" Content="OK" Width="78" Margin="5,5,0,5" IsDefault="True" Click="Ok_Click" />
            <Button Name="btnCancel" Content="Cancel" Width="78" Margin="5,5,5,5" IsCancel="True" />
        </WrapPanel>
    </StackPanel>

</Window>

我认为设计师的全部目的是让我可以看到窗户的外观。既然它向我展示了不同的东西,我怎么知道设置它的大小?

标签: c#wpfxaml.net-core

解决方案


您可能希望在上设置Widthand并将's设置为。这样,无论窗口边框的大小如何,内容始终可见(假设您的大小正确:)):HeightStackPanelWindowSizeToContentWidthAndHeightStackPanel

<Window x:Class="InsiderArticlesManager.AuthorWindow"
        ...
        SizeToContent="WidthAndHeight">
    <StackPanel Height="114" Width="341">
        ...
    </StackPanel>
</Window>

在您的情况下,由于 XAML 设计器窗口的窗口边框尺寸较小,因此会出现设计时间和运行时之间的差异。


推荐阅读