Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要WPF的UI对齐帮助吗_C#_.net_Wpf - Fatal编程技术网

C# 需要WPF的UI对齐帮助吗

C# 需要WPF的UI对齐帮助吗,c#,.net,wpf,C#,.net,Wpf,在我的WPF应用程序(下面是XAML)中,我有一个列表视图,下面是一些标签和文本框。ListView下面的所有内容都应该锚定到窗口的底部。ListView上方的所有内容都需要锚定到窗口顶部。ListView本身需要垂直展开以填充之间的空间。当我垂直调整窗口大小时,唯一应该改变大小的是列表视图 我将所有内容都保存在根目录下的堆栈面板中,但它无法按照我的需要调整listview的大小。有人知道我怎样才能做到这一点吗?我正在使用C#.NET4.0和VS2010 <Window x:Class="

在我的WPF应用程序(下面是XAML)中,我有一个列表视图,下面是一些标签和文本框。ListView下面的所有内容都应该锚定到窗口的底部。ListView上方的所有内容都需要锚定到窗口顶部。ListView本身需要垂直展开以填充之间的空间。当我垂直调整窗口大小时,唯一应该改变大小的是列表视图

我将所有内容都保存在根目录下的堆栈面板中,但它无法按照我的需要调整listview的大小。有人知道我怎样才能做到这一点吗?我正在使用C#.NET4.0和VS2010

<Window x:Class="TaskManager.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" MinWidth="525" MinHeight="400">
    <StackPanel Orientation="Vertical">
        <Menu Name="mainMenu" Margin="0,0,0,5">
            <MenuItem Header="File">
                <MenuItem Header="Quit" />
            </MenuItem>
        </Menu>
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,0,0,5">
            <Label>View tasks for user:</Label>
            <ComboBox Name="userList" MinWidth="150"></ComboBox>
        </StackPanel>
        <ListView Name="taskView" VerticalContentAlignment="Stretch">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Task" Width="300"/>
                    <GridViewColumn Header="Hours" Width="50"/>
                </GridView>
            </ListView.View>
        </ListView>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="353*" />
                <ColumnDefinition Width="97*" />
                <ColumnDefinition Width="53" />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <Label Grid.Row="0" Grid.Column="0">Task Description</Label>
            <TextBox Grid.Row="1" Grid.Column="0"/>
            <Label Grid.Row="0" Grid.Column="1">Hours</Label>
            <TextBox Grid.Row="1" Grid.Column="1"/>
            <Button Grid.Row="1" Grid.Column="2">Add</Button>
        </Grid>
    </StackPanel>
</Window>

查看用户的任务:
任务描述
小时
添加
这听起来好像可以帮助您获得所需的结果。在DockPanel中,您可以将视图的部分停靠在窗口的顶部、底部、左侧或右侧。添加的最后一个元素始终覆盖窗口的其余部分。我在下面修改了你的StackPanel代码

<DockPanel>
    <Menu DockPanel.Dock="Top" Name="mainMenu" Margin="0,0,0,5">
        <MenuItem Header="File">
            <MenuItem Header="Quit" />
        </MenuItem>
    </Menu>
    <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,0,0,5">
        <Label>View tasks for user:</Label>
        <ComboBox Name="userList" MinWidth="150"></ComboBox>
    </StackPanel>
    <Grid DockPanel.Dock="Bottom">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="353*" />
            <ColumnDefinition Width="97*" />
            <ColumnDefinition Width="53" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Label Grid.Row="0" Grid.Column="0">Task Description</Label>
        <TextBox Grid.Row="1" Grid.Column="0"/>
        <Label Grid.Row="0" Grid.Column="1">Hours</Label>
        <TextBox Grid.Row="1" Grid.Column="1"/>
        <Button Grid.Row="1" Grid.Column="2">Add</Button>
    </Grid>
    <ListView Name="taskView" VerticalContentAlignment="Stretch">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Task" Width="300"/>
                <GridViewColumn Header="Hours" Width="50"/>
            </GridView>
        </ListView.View>
    </ListView>
</DockPanel>

查看用户的任务:
任务描述
小时
添加

这可以使用具有4行定义的网格来完成。所有行的高度都应设置为“自动”,但要展开的行除外,该行的高度应设置为“*”


查看用户的任务:
任务描述
小时
添加
<Window x:Class="TaskManager.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" MinWidth="525" MinHeight="400">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Menu Grid.Row="0"  Name="mainMenu" Margin="0,0,0,5">
            <MenuItem Header="File">
                <MenuItem Header="Quit" />
            </MenuItem>
        </Menu>
        <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,0,0,5">
            <Label>View tasks for user:</Label>
            <ComboBox Name="userList" MinWidth="150"></ComboBox>
        </StackPanel>
        <ListView Grid.Row="2" Name="taskView" VerticalContentAlignment="Stretch">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Task" Width="300"/>
                    <GridViewColumn Header="Hours" Width="50"/>
                </GridView>
            </ListView.View>
        </ListView>
        <Grid Grid.Row="3">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="353*" />
                <ColumnDefinition Width="97*" />
                <ColumnDefinition Width="53" />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <Label Grid.Row="0" Grid.Column="0">Task Description</Label>
            <TextBox Grid.Row="1" Grid.Column="0"/>
            <Label Grid.Row="0" Grid.Column="1">Hours</Label>
            <TextBox Grid.Row="1" Grid.Column="1"/>
            <Button Grid.Row="1" Grid.Column="2">Add</Button>
        </Grid>
    </Grid>
</Window>