2015-09-28 89 views
1

我是新与WPF请记住这一点。我试图使窗口响应调整大小,是否有可能作为窗口放大或缩小我的控制,如textboxesbuttons被调整?响应WPF窗口

<Window x:Class="WPF_Working_Experimenet.Window1" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="Window1" Height="216.586" Width="459.256"> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="156*"/> 
      <ColumnDefinition Width="295*"/> 
     </Grid.ColumnDefinitions> 
     <Label Content="username :" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="66,27,0,0" Height="30" Width="63" FontFamily="B Nazanin" FontSize="15" Grid.Column="1"/> 
     <Label Content="password :" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="74,63,0,0" Height="30" Width="55" FontFamily="B Nazanin" FontSize="15" Grid.Column="1"/> 
     <Label x:Name="lblwrong" Content="" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,150,0,0" ClipToBounds="True" Grid.Column="1" Height="26" Width="275"/> 
     <Button x:Name="btnLogin" Content="Login" HorizontalAlignment="Left" VerticalAlignment="Top" Width="60" Grid.Column="1" Margin="211,103,0,0" Height="37" Background="White" Click="btnLogin_Click" BorderBrush="Red" FontFamily="B Nazanin" FontSize="15"/> 
     <Image HorizontalAlignment="Left" Height="117" Margin="4,23,0,0" VerticalAlignment="Top" Width="178" Source="img/Ticket_5523675581838074942.png" Grid.ColumnSpan="2" RenderTransformOrigin="0.5,0.128"/> 
     <Button x:Name="btnExit" Content="Exit" HorizontalAlignment="Left" VerticalAlignment="Top" Width="60" Grid.Column="1" Margin="146,103,0,0" Height="37" Background="#FFFDFDFD" BorderBrush="Red" Click="Button_btnExit" FontFamily="B Nazanin" FontSize="15"/> 
     <TextBox x:Name="txtUsername" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="125" Grid.Column="1" Margin="146,34,0,0" BorderBrush="#FFF7311E"/> 
     <PasswordBox x:Name="txtPassword" Grid.Column="1" HorizontalAlignment="Left" Margin="146,70,0,0" VerticalAlignment="Top" Width="125" Height="23" BorderBrush="#FFFD3306"/> 

    </Grid> 
</Window> 

任何Reference/hintTutorial/link将是可爱。预先感谢您,如果您明确设置了WidthHeight性能

+0

问题是什么?你如何使它响应?我不太明白'回应'的含义。你能给出一个不符合预期的事情的具体例子吗? –

回答

5

如果您希望控件增大/缩小,则必须设置边距/填充而不是明确的宽度/高度。

几个环节,以帮助您:

Layout with Absolute and Dynamic Positioning

How to make all controls resize accordingly proportionally when window is maximized?

+0

这是不正确的。您正在调整大小(原始问题)与布局和安排。 'Horizo​​ntalAlignment'和'VerticalAlignment'会像'Margin'和'Padding'属性一样影响控件的布局。但是'Margin'和'Padding'不能确定一个控件是否会自行调整大小。对齐属性可以做到这一点,以及适用时父容器的“Horizo​​ntalContentAlignment”,“VerticalContentAlignment”,“ColumnDefinition.Width”等属性。 “边距”和“填充”影响控件与其父母和孩子之间的距离。 –

+0

@JasonBoyd我发布的关于布局的链接绝对定位和动态定位不仅仅是绝对定位。 – AnjumSKhan

+0

@AnjumSKhan很好,谢谢 – Valkyry

0

控制不会进行调整。试试下面,我删除了WidthHeight性质,改变了HorizontalAlignmentVerticalAlignmentStretch

<Window x:Class="WPF_Working_Experimenet.Window1" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="Window1" Height="216.586" Width="459.256"> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="156*"/> 
      <ColumnDefinition Width="295*"/> 
     </Grid.ColumnDefinitions> 
     <Label Content="username :" 
       HorizontalAlignment="Stretch" 
       VerticalAlignment="Stretch" 
       FontFamily="B Nazanin" 
       FontSize="15" 
       Grid.Column="1"/> 
     <Label Content="password :" 
       HorizontalAlignment="Stretch" 
       VerticalAlignment="Stretch" 
       FontFamily="B Nazanin" 
       FontSize="15" 
       rid.Column="1"/> 
     <Label x:Name="lblwrong" 
       Content="" 
       HorizontalAlignment="Stretch" 
       VerticalAlignment="Stretch" 
       ClipToBounds="True" 
       Grid.Column="1"/> 
     <Button x:Name="btnLogin" 
       Content="Login" 
       HorizontalAlignment="Stretch" 
       VerticalAlignment="Stretch" 
       Grid.Column="1" 
       Background="White" 
       Click="btnLogin_Click" 
       BorderBrush="Red" 
       FontFamily="B Nazanin" 
       FontSize="15"/> 
     <Image HorizontalAlignment="Stretch" 
       VerticalAlignment="Stretch" 
       Source="img/Ticket_5523675581838074942.png" 
       Grid.ColumnSpan="2" 
       RenderTransformOrigin="0.5,0.128"/> 
     <Button x:Name="btnExit" 
       Content="Exit" 
       HorizontalAlignment="Stretch" 
       VerticalAlignment="Stretch" 
       Grid.Column="1" 
       Background="#FFFDFDFD" 
       BorderBrush="Red" 
       Click="Button_btnExit" 
       FontFamily="B Nazanin" 
       FontSize="15"/> 
     <TextBox x:Name="txtUsername" 
       HorizontalAlignment="Stretch" 
       TextWrapping="Wrap" 
       VerticalAlignment="Stretch" 
       Grid.Column="1" 
       BorderBrush="#FFF7311E"/> 
     <PasswordBox x:Name="txtPassword" 
        Grid.Column="1" 
        HorizontalAlignment="Stretch" 
        VerticalAlignment="Stretch" 
        BorderBrush="#FFFD3306"/> 
    </Grid> 
</Window> 
+0

是的,就是这样。但不是我所期待的。谢谢 – Valkyry

+0

Downvoted,因为它只关注完全伸展,如果用户不想控制完全拉伸。 – AnjumSKhan

+0

@AnjumSKhan - 用户问到如何“使窗口响应于调整”。对齐属性可以做到这一点。还有一些其他属性会影响控件的布局和排列,但这些属性并不直接适用于此问题。此外,它会在一本书中涉及所有这些属性。对于一个简单问题的答案来说,这是一个不现实的高期望值。 –