繁体   English   中英

为什么 WPF 上有多余的空间?

[英]Why is there extra space on WPF?

这是在 XAML 设计器中

预期的:

在此处输入图像描述

实际的:

在此处输入图像描述

这是我的窗口的 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"
    xmlns:local="clr-namespace:WpfApp2"
    xmlns:Wpf="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf" x:Class="WpfApp2.MainWindow"
    mc:Ignorable="d"
    ResizeMode="NoResize"
    Title="MainWindow" SizeToContent="WidthAndHeight" AllowsTransparency="True" WindowStyle="None" Loaded="Window_Loaded">
<StackPanel>
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
        <StackPanel.Resources>
            <Style TargetType="Button">
                <Setter Property="Margin" Value="5, 0, 5, 0"></Setter>
                <Setter Property="Height" Value="30"></Setter>
            </Style>
        </StackPanel.Resources>
        <Button>测试</Button>
        <Button>测试</Button>
        <Button>测试</Button>
    </StackPanel>
    <Canvas Height="2" Background="Red" />
</StackPanel>

窗户周围有额外的空间。

我发现只要高度小于40,就会有多余的空间。但是我没有设置minHeight。

这是我的 app.xaml:

<Application x:Class="WpfApp2.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:local="clr-namespace:WpfApp2"
         StartupUri="MainWindow.xaml">
<Application.Resources>
     
</Application.Resources>

我的环境信息:

视窗 11

视觉工作室 2022

.net 框架 4.8

在 WPF SizeToContent中, WindowStyle=None不能很好地工作。 最初绘制窗口时,渲染器似乎仍在考虑不存在的边框。

一个简单的技巧来克服这个问题:在 Window 上设置Height="1"以强制其初始大小小于最终大小。 然后在呈现内容时, SizeToContent="WidthAndHeight"将导致窗口将自身调整为正确的大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM