【问题标题】:Window size does not match what I have in the designer窗口大小与我在设计器中的大小不符
【发布时间】:2020-10-01 17:50:48
【问题描述】:

我不知道为什么每次我使用 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>

我认为设计师的全部目的是让我可以看到窗口的外观。既然它向我展示了一些不同的东西,我怎么知道要设置什么尺寸?

【问题讨论】:

  • Height属性值为114,不知道你在期待什么。此外,您无法直接将设计器中的外观与运行程序时实际看到的外观进行比较。
  • @bolkay:WinForms 和 SDK 设计者都向我展示了窗口在运行时的样子。我真的不明白为什么用 WPF 要求太多了。
  • 好的。我明白了。您还可以查看设计器中的缩放因子,以进一步帮助您进行评估。可能是你达到了 150% 之类的。
  • @bolkay:更改缩放不会更改布局或相对于内容的窗口大小。 Zoom 的行为完全符合我的预期。

标签: c# wpf xaml .net-core


【解决方案1】:

您可能希望在StackPanel 上设置WidthHeight,并将WindowSizeToContent 设置为WidthAndHeight。这样,无论窗口边框的大小如何,内容始终可见(假设您正确调整 StackPanel 的大小:)):

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

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

【讨论】:

  • 这样更接近了。我不明白为什么需要这些。
  • @JonathanWood 好吧,这就是框架的设计方式,但随着时间的推移,人们会逐渐了解并习惯这些小事。
  • 对我来说似乎不是一个很好的设计,我从 1987 年就开始从事开发工作。
猜你喜欢
  • 1970-01-01
  • 2013-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-31
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多