2015-09-28 2 views
1

Я новичок с WPF, пожалуйста, имейте это в виду. Я пытаюсь сделать отзыв с учетом окна для изменения размера. Возможно ли, что мои элементы управления, такие как textboxes и buttons, изменены, когда окно растет или сжимается?Отзывчивый 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/hint или Tutorial/link было бы прекрасно. заранее заблаговременно

+0

Какой вопрос? Как вы реагируете? Я не совсем понимаю, что вы подразумеваете под «отзывчивым». Можете ли вы привести конкретный пример того, чего не ожидаете? –

ответ

5

Вы должны установить Margin/Padding вместо явной ширины/высоты, если вы хотите, чтобы ваши элементы управления увеличивались/сокращались.

Несколько ссылок, чтобы помочь вам:

Layout with Absolute and Dynamic Positioning

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

+0

Неправильное использование. Вы объединяете изменение размера (исходный вопрос) с компоновкой и расположением. 'HorizontalAlignment' и' VerticalAlignment' влияют на расположение элемента управления, а также свойства «Margin» и «Padding». Но «Margin» и «Padding» не определяют, будет ли элемент управления изменять размер. Свойства выравнивания делают это, а также свойства HorizontalContentAlignment, 'VerticalContentAlignment',' ColumnDefinition.Width' и т. Д. Родительского контейнера, когда это применимо. «Margin» и «Padding» влияют на расстояние между элементом управления и его родителем и дочерним элементом. –

+0

@JasonBoyd Ссылка, которую я опубликовал, касающаяся макетов, является абсолютным и динамическим позиционированием, а не только абсолютным позиционированием. – AnjumSKhan

+0

@AnjumSKhan Замечательно, спасибо – Valkyry

0

Элементы управления не изменяются, если вы задали свои Width и Height свойствам явно. Попробуйте следующее: я удалил свойства Width и Height и изменил значения HorizontalAlignment и VerticalAlignment на Stretch.

<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 - Пользователь спросил, как «Сделать окно реагировать на изменение размера». Свойства выравнивания делают это. Существует множество других свойств, которые влияют на компоновку и расположение элемента управления, но это не относится непосредственно к этому вопросу. Кроме того, в книге будет рассмотрена целая глава, охватывающая все эти свойства. Это нереалистично высокое ожидание ответа на простой вопрос. –