首页 > 解决方案 > 当没有调整大小和大小限制时,为什么窗口会在输出中重新缩放/缩小?

问题描述

我只是新来的 WPF C#。

我注意到设计视图和有一些细微差别。在按钮处最明显。

设计视图:

在此处输入图像描述

输出#1:

在此处输入图像描述

输出#2:

在此处输入图像描述

即使最小和最大宽度和高度都设置为固定值并且调整大小模式设置为 NoResize,窗口/容器似乎正在调整大小/缩小。

我可以通过设置垂直和水平对齐来轻松处理一些控件,因为调整不太明显,但是对于“添加”按钮,与假定输出的差异很明显。

我确实尝试设置按钮的最小大小,以便它不会受到调整大小的影响,并且边距仍然有空间,但按钮只正确呈现了它的一部分。(请参见输出 1)

我能做的唯一折衷方案是将垂直和水平对齐设置为拉伸并且不对按钮施加任何尺寸限制,但按钮最终会从其原始尺寸缩小。(请参见输出 2)

这是窗口的 XAML。

<Window x:Class="Game_Viewer.NewApp"
        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:Game_Viewer"
        mc:Ignorable="d"
        Title="Add New Program" Height="155" Width="250" ResizeMode="NoResize" Background="#FF515151" WindowStyle="ToolWindow" WindowStartupLocation="CenterScreen" MinHeight="155" MinWidth="250">
    <Grid Margin="0">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="0*"/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Image x:Name="appicon_img" Margin="10,10,0,0" Source="Resources/menu_bg.png" Stretch="Fill" Height="35" VerticalAlignment="Top" HorizontalAlignment="Left" Width="35" Grid.ColumnSpan="2"/>
        <TextBox x:Name="apppath_txtbox" HorizontalAlignment="Left" Margin="10,55,0,0" Width="154" Foreground="White" Background="#FF6E6E6E" Text="Program Path" VerticalContentAlignment="Center" BorderBrush="#FF707070" MaxLines="1" Height="25" VerticalAlignment="Top" FontSize="10" Grid.ColumnSpan="2"/>
        <Button Content="Search" Margin="169,55,10,0" Click="BrowseApp_Click" Foreground="White" Background="#FF515151" FontWeight="Medium" Height="25" VerticalAlignment="Top" FontSize="10" Grid.ColumnSpan="2"/>
        <Button x:Name="add_btn" Content="Add Program" Margin="72,89,72,8" Foreground="White" Background="#FF515151" Click="AddProgram_Click" FontWeight="Medium" Grid.ColumnSpan="2" MinHeight="30" MinWidth="100"/>
        <TextBox x:Name="appname_txtbox" Margin="50,10,10,0" TextWrapping="WrapWithOverflow" Foreground="White" Text="Program Name" MaxLines="1" IsUndoEnabled="True" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" BorderBrush="#FF707070" FontWeight="Medium" Background="#FF6E6E6E" Height="35" VerticalAlignment="Top" Grid.ColumnSpan="2"/>
    </Grid>
</Window>

我想知道此类问题的解决方案或解决方法。

遇到这个问题并不是真正的问题,因为它只是美学上的,但我至少会知道发生这种情况的原因。您能否向我推荐使用 c# 的 wpf 的优秀教程。

在此先感谢,祝您有美好的一天!

标签: c#wpf

解决方案


推荐阅读