2017-08-22 262 views
1

为什么我看不到源和编译之间的大小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> 

+0

您将对齐方式设置为“左”和“上”,但将其定位在窗口的右下角。 – JMK

+0

您是否检查过设计师的缩放级别? –

+0

谢谢大家。对不起,这个愚蠢的问题。我得到了JMK的建议。我没有注意到它自己。 – Kirill

回答

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

信息

您可以删除的HeightWidth财产您Window和使用SizeToContent="WidthAndHeight"当你想你的用户界面要大,因为它必须是显示所有内容。

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> 

这是说“使我的窗户300宽200高,但在我的设计师中使500 500“。

这是说,更好的办法是经常使用SizeToContent让你的窗口适合您的内容。像这样

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