none
从工具箱拉出的控件,如何使一部分(lable,textbox,button等)位置大小不变,一部分(datagrid)随窗体大小变化? RRS feed

  • 问题

  • 在窗体中,从工具箱拉出的控件,如何使一部分(lable,textbox,button等)位置大小不变,一部分(datagrid)随窗体大小变化?

    比如,当最大化时,一部分控件(lable,textbox,button等)相对左上角位置大小不变,原本拉出的就是这样的效果。

    但是,直接拉出的datagrid是希望能随窗体大小变化,比如最大化了,可以横向纵向都可以看到更多数据。

    知道的好人,麻烦举个例子或者贴一下代码,或者说怎么设置某些属性。谢谢!

    2015年8月12日 3:26

答案

  • Hi huahuahua123,

    你的问题其实就是WPF中的布局问题和绑定的问题。

    >>"(datagrid)随窗体大小变化?"

    你只需要将DataGrid的Width属性与窗体的ActualHeight属性绑定,即可实现你所说的效果。我这边用了Grid来写了个例子供你参考:

    <Window x:Class="WpfAppGrid.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="250" Width="305" x:Name="mywindow">
        <Grid Background="Green" Width="{Binding ElementName=mywindow,Path=ActualWidth}" Height="{Binding ElementName=mywindow,Path=ActualHeight}">
            <Grid.RowDefinitions>
                <RowDefinition></RowDefinition>
                <RowDefinition></RowDefinition>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition></ColumnDefinition>
                <ColumnDefinition></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <TextBlock Grid.Row="0" Grid.Column="0" Text="abc" Background="Red" Width="100" Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"></TextBlock>
            <TextBox Grid.Row="0" Grid.Column="1" Text="abc" Background="LightBlue" Width="100" Height="50"></TextBox>
            <Button Grid.Row="1" Grid.Column="0" Content="abc" Background="LightCyan" Width="100" Height="50"></Button>
            <Label Content="abc" Grid.Row="1" Grid.Column="1" Background="DarkViolet" Width="100" Height="50"></Label>
        </Grid>
        
    </Window>
    

    >>"如何使一部分(lable,textbox,button等)位置大小不变"

    大小位置不变,我觉得需要你自己设定控件的长和宽,并且去设置水平、垂直方向上的对其方式,通过设置Margin属性,来控制控件与父容器的4个边的距离大小等,你也可以参考我上边的代码。

    更多的关于绑定的资料,可以参考MSDN的文档:https://msdn.microsoft.com/zh-cn/library/vstudio/ms750612(v=vs.100).aspx

    布局的资料文档:https://msdn.microsoft.com/zh-cn/library/bb675293(v=vs.90).aspx

    Best Regards,

    Xavier Eoro


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年8月13日 8:03
    版主