响应wpf窗口

响应wpf窗口,wpf,xaml,Wpf,Xaml,我是新来的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/xa

我是新来的
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>


任何
参考/提示
教程/链接
都会很可爱。提前感谢

如果您明确设置控件的
宽度
高度
属性,则控件不会调整大小。尝试以下操作,我删除了
宽度
高度
属性,并将
水平对齐
垂直对齐
值更改为
拉伸

<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>

如果您明确设置控件的
宽度
高度
属性,则控件不会调整大小。尝试以下操作,我删除了
宽度
高度
属性,并将
水平对齐
垂直对齐
值更改为
拉伸

<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>

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

有几个链接可以帮助您:


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

有几个链接可以帮助您:


居中
真的
大胆的
将水平和垂直对齐设置为拉伸,而不是设置小部件的宽度和高度,就可以做到这一点。但如果你愿意,你仍然可以设定一个保证金。尝试了这一点,它确保了当窗口大小改变时,小部件将分别进行调整。


居中
真的
大胆的

将水平和垂直对齐设置为拉伸,而不是设置小部件的宽度和高度,就可以做到这一点。但如果你愿意,你仍然可以设定一个保证金。尝试了这个方法,它确保当窗口大小改变时,小部件将分别进行调整。

问题是什么?如何使其响应?我真的不明白你所说的“响应性”是什么意思。你能举一个具体的例子说明一些事情的表现不符合预期吗?问题是什么?如何使其响应?我真的不明白你所说的“响应性”是什么意思。你能举一个具体的例子说明一些事情的表现不符合预期吗?是的,就是这样。然而,这并不是我所期待的。感谢您投票否决,因为它只关注完全拉伸,如果用户不希望控件完全拉伸该怎么办。@AnjumSKhan-用户询问如何“使窗口响应调整大小”。路线属性可以做到这一点。还有许多其他属性也会影响控件的布局和排列,但这些属性并不直接适用于此问题。此外,一本书要花一整章的时间才能涵盖所有这些属性。对于一个简单问题的答案来说,这是一个不切实际的高期望值。@JasonBoyd将值设置为Stretch将保持控件填充整个空间,这不是每次都需要的。是的,就是这样。然而,这并不是我所期待的。感谢您投票否决,因为它只关注完全拉伸,如果用户不希望控件完全拉伸该怎么办。@AnjumSKhan-用户询问如何“使窗口响应调整大小”。路线属性可以做到这一点。还有许多其他属性也会影响控件的布局和排列,但这些属性并不直接适用于此问题。此外,一本书要花一整章的时间才能涵盖所有这些属性。对于一个简单问题的答案来说,这是一个不切实际的高期望值。@JasonBoyd将值设置为Stretch将保持控件填充整个空间,这不是每次都需要的。这是不正确的。您将调整大小(原始问题)与布局和安排混为一谈<代码>水平对齐和
垂直对齐
边距
填充
属性一样影响控件的布局。但是
Margin
Padding
不能确定控件是否会调整自身大小。对齐属性以及
HorizontalContentAlignment
VerticalContentAlignment
ColumnDefinition.Width
等都可以做到这一点。。。父容器的属性(如果适用)<代码>边距和
填充
会影响控件与其父控件和子控件之间的距离。@JasonBoyd我发布的关于布局目标绝对和动态定位而不仅仅是绝对定位的链接。这是不正确的。您将调整大小(原始问题)与布局和安排混为一谈<代码>水平对齐和
垂直对齐
边距
填充
属性一样影响控件的布局。但是
Margin
Padding
不能确定控件是否会调整自身大小。路线