尺寸MainWindow

时间:2017-08-22 10:10:10

标签: c# wpf

为什么我在源代码和编译之间看不到大小相等的WPF格式? 我的意思是状态栏和按钮在图像之间看起来不同。他们有不同的立场。编译前的第一张图片。第二张图片。

我做错了什么?

对不起初学者的问题。

First example

Second example

<Window x:Class="WebDownloader.MainWindow"
    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:WebDownloader"
    mc:Ignorable="d"
    Title="MainWindow" Initialized="Window_Initialized" Closed="Window_Closed" ResizeMode="NoResize" Height="190" Width="225.395">
<Grid>
    <Button x:Name="MainButton" Content="Done" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="135,108,0,0" Click="MainButton_Click" FontFamily="Times New Roman"/>
    <StatusBar HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,133,0,0" Width="209" Height="18" FontFamily="Times New Roman">
        <StatusBarItem Content="StatusBarItem" Height="18" VerticalAlignment="Top" FontFamily="Times New Roman" Width="78" HorizontalAlignment="Left"/>
    </StatusBar>

</Grid>

2 个答案:

答案 0 :(得分:3)

问题是您使用具有固定大小和边距的静态布局来放置项目。你真的不应该以这种方式布局WPF应用程序。

使用相对布局并使用它应该使用的Grid:行和列。

我删除了布局不需要的所有属性,以使此样本尽可能短。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Button Content="Done" 
            Grid.Row="1"
            HorizontalAlignment="Right"
            Width="75"
            Margin="0 0 5 5"/>
    <StatusBar Grid.Row="2" 
               HorizontalAlignment="Stretch"
               VerticalAlignment="Top">
        <StatusBarItem Content="StatusBarItem"
                       HorizontalAlignment="Left"/>
    </StatusBar>
</Grid>

Example

<强>信息

如果您希望自己的用户界面尽可能大,那么您可以删除Height的{​​{1}}和Width属性并使用Window内容。

答案 1 :(得分:0)

这个article值得一看;它给出了WPF窗口的一个很好的概述。

您可以控制一个窗口heightwidth,例如

<Window Height="200" Width="300">
    <!-- Content here -->
</Window>

给你300宽200高的窗户。

此外,您可以指定最小值和最大值 - 当您希望用户能够调整窗口大小时,这非常有用,例如:

<Window Height="200" Width="300" MinWidth="200" MaxWidth="500">
    <!-- Content here -->
</Window>

为您提供一个200高,200到500宽的窗口,默认宽度为300。

您可以像这样指定设计高度和宽度

<Window Height="200" Width="300" DesignWidth="500" DesignHeight="500">
    <!-- Content here -->
</Window>

这说&#34;让我的窗户宽300,高200,但在我的设计师和#34中将它设为500乘500。

这就是说,更好的方法通常是使用SizeToContent,以便您的窗口适合您的内容。喜欢这个

<Window SizeToContent="WidthAndHeight">
    <!-- Content here -->
</Window>