2016-09-11 182 views
0

我有一个wpf应用程序。当我在台式电脑上启动它时,它看起来很棒。但是当我用小屏幕尺寸的笔记本电脑启动应用程序时,我的一个窗口可以不适合。 它看起来是这样的 enter image description here在较小的屏幕尺寸下适合尺寸的内容

当我把一套大小的内容WidhtAndHeight,我得到 enter image description here

这符合我的窗口,但我的两个向下按钮右边的窗口的边缘。我想在按钮和窗口边缘之间留出一些额外的空间。 我尝试设置

高度= “{结合SystemParameters.PrimaryScreenHeight}”

宽度= “{结合SystemParameters.PrimaryScreenWidth}”>

高度=“{X:静态SystemParameters .PrimaryScreenHeight}”

宽度= “{x:静态SystemParameters.PrimaryScreenWidth}”

,但它给了我与第二张照片相同的结果。

我的XAML:

<Window x:Class="Zavod.Objekat.ObjekatIzmena" 
     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:Zavod.Objekat" 
     mc:Ignorable="d" 
     Title="sadas" Height="796" Width="1114" ResizeMode="CanMinimize" WindowStartupLocation="CenterScreen" FontFamily="Verdana" SizeToContent="WidthAndHeight" Background="#FFA38566" Loaded="Window_Loaded"> 
    <Grid Margin="0,0,4,0"> 
    <TabControl x:Name="tabControl" HorizontalAlignment="Left" Height="626" VerticalAlignment="Top" Width="1104" Background="#FFA38566"> 
      <TabItem Header="Општи подаци"> 
       <Grid> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="459"></ColumnDefinition> 
         <ColumnDefinition/> 
        </Grid.ColumnDefinitions> 
        <Label x:Name="label" Content="Кључ:" HorizontalAlignment="Right" Margin="345,24,0,0" VerticalAlignment="Top"/> 
        <Label x:Name="label_Copy" Content="Повезивање:" HorizontalAlignment="Right" Margin="345,55,0,0" VerticalAlignment="Top"/> 
        <Label x:Name="label_Copy1" Content="Линк за слику 1:" HorizontalAlignment="Right" Margin="345,86,0,0" VerticalAlignment="Top"/> 
        <Label x:Name="label_Copy2" Content="Линк за слику 2:" HorizontalAlignment="Right" Margin="345,117,0,0" VerticalAlignment="Top"/> 
        <Label x:Name="label_Copy3" Content="Линк за слику 3:" HorizontalAlignment="Right" Margin="345,148,0,0" VerticalAlignment="Top"/> 
        <Label x:Name="label_Copy4" Content="Линк за слику 4:" HorizontalAlignment="Right" Margin="345,179,0,0" VerticalAlignment="Top"/> 
        <TextBox x:Name="textBoxKljuc" Grid.Column="1" HorizontalAlignment="Left" Height="23" Margin="10,27,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="30" IsEnabled="False"/> 
        <TextBox x:Name="textBoxPovezivanje" Grid.Column="1" HorizontalAlignment="Left" Height="23" Margin="10,58,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="30" IsEnabled="False"/> 
        <TextBox x:Name="textBoxLinkZaSliku1" Grid.Column="1" HorizontalAlignment="Left" Height="23" Margin="10,89,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="250" Background="#FFECE7B7"/> 
        <TextBox x:Name="textBoxLinkZaSliku2" Grid.Column="1" HorizontalAlignment="Left" Height="23" Margin="10,120,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="250" Background="#FFECE7B7"/> 
        <TextBox x:Name="textBoxLinkZaSliku3" Grid.Column="1" HorizontalAlignment="Left" Height="23" Margin="10,151,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="250" Background="#FFECE7B7"/> 
        <TextBox x:Name="textBoxLinkZaSliku4" Grid.Column="1" HorizontalAlignment="Left" Height="23" Margin="10,181,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="250" Background="#FFECE7B7"/> 


       </Grid> 
      </TabItem> 
</TabControl> 
<Button x:Name="buttonSnimiObjekat" Content="Измени" HorizontalAlignment="Left" Margin="231,660,0,0" VerticalAlignment="Top" Width="75" Click="buttonSnimiObjekat_Click"/> 
     <Button x:Name="buttonOdustani" Content="Откажи" HorizontalAlignment="Left" Margin="816,660,0,0" VerticalAlignment="Top" Width="75" Click="buttonOdustani_Click" /> 


    </Grid> 
</Window> 
+0

显示完整的xaml代码。 –

+0

我编辑了评论 – nscott23

+1

在xaml中使用硬编码大小是一种不好的做法。 如果你删除它,你会看到不同之处。 –

回答

1

看到一个例子布局应如何创建:

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="5" /> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 
    <TabControl x:Name="tabControl"> 
     <TabItem Header="Општи подаци"> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="Auto" /> 
        <ColumnDefinition Width="5" /> 
        <ColumnDefinition /> 
       </Grid.ColumnDefinitions> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="Auto" /> 
        <RowDefinition Height="5" /> 
        <RowDefinition Height="Auto" /> 
        <RowDefinition Height="5" /> 
        <RowDefinition Height="Auto" /> 

       </Grid.RowDefinitions> 

       <Label x:Name="label" 
         Content="Кључ:" /> 
       <Label x:Name="label_Copy" 
         Content="Повезивање:" 
         Grid.Row="2" /> 
       <Label x:Name="label_Copy1" 
         Content="Линк за слику 1:" 
         Grid.Row="4" /> 

       <TextBox x:Name="textBoxKljuc" 
         Grid.Column="2" 
         TextWrapping="Wrap" 
         IsEnabled="False" /> 
       <TextBox x:Name="textBoxPovezivanje" 
         Grid.Column="2" 
         Grid.Row="2" 
         TextWrapping="Wrap" 
         IsEnabled="False" /> 
       <TextBox x:Name="textBoxLinkZaSliku1" 
         Grid.Column="2" 
         Grid.Row="4" 
         TextWrapping="Wrap" 
         Background="#FFECE7B7" /> 

      </Grid> 
     </TabItem> 
    </TabControl> 
    <StackPanel Orientation="Horizontal" 
       HorizontalAlignment="Right" 
       Grid.Row="2"> 
     <Button x:Name="buttonSnimiObjekat" 
       Content="Измени" /> 
     <Button x:Name="buttonOdustani" 
       Content="Откажи" /> 
    </StackPanel> 

</Grid> 

你的问题是不变的利润率和大小。当您使用Expression Blend并且不会手动编写XAML时会发生这种情况。

+0

我明白了你的观点,但是这会在我的两个按钮和正下方的窗口边缘之间创建空间吗?我需要这个 – nscott23

+0

您只需通过Window控件的Width和Height属性来控制窗口的大小。如果你有很大的自由空间 - 你应该缩小你的窗口。 –