【问题标题】:WPF - Live resize of controls inside of a window/gridWPF - 窗口/网格内控件的实时调整大小
【发布时间】:2014-04-30 06:19:52
【问题描述】:

所以我是 .NET 和 WPF 的新手,希望有人能告诉我我做错了什么。我有一个 WPF 应用程序,它基本上只是一个数据网格。对于我的生活,我无法弄清楚如何让 DataGrid 在父窗口更改大小时自动调整大小,而不必编写一堆代码来监视窗口调整大小事件。在 OS X/Cocoa/Interface Builder 上,这相当简单直接,我只能假设 WPF 具有类似的功能。

<Window x:Class="MyClass.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="358" Width="542">
    <Grid>
        <DataGrid x:Name="mydatagrid" ItemsSource="{Binding}" AutoGenerateColumns="true" Height="328" Width="534"/>
    </Grid>
</Window>

【问题讨论】:

    标签: wpf resize wpfdatagrid


    【解决方案1】:

    感谢WPF Grid allow controls inside to auto size width/height,我终于明白了

    编辑: 因此,要解决 cmets 问题(对不起,这里仍然是新事物)。我做错了什么,没有定义 Grid.ColumnDefinitions(或 RowDefinitions,具体取决于您组织事物的方式),并为 Grid 内的控件指定 Grid.Column(或 Row)编号。这是一个带有 2 个 DataGrids 和一个 GridSplitter 的示例。此外,您应该在 ColumnDefinition(或 RowDefinition)中而不是在控件本身中指定宽度(或高度,如果是一行)。

    <Grid Height="Auto" Width="Auto">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <DataGrid x:Name="myDataGrid1" Grid.Column="0" Margin="0,0,0,0" ItemsSource="{Binding}" HeadersVisibility="Column" IsReadOnly="True" AutoGeneratingColumn="OnAutoGeneratingColumn"/>
        <GridSplitter Grid.Column="1" Width="5" HorizontalAlignment="Center" VerticalAlignment="Stretch"/>
        <DataGrid x:Name="myDataGrid2" Grid.Column="2" Margin="0,0,0,0" ItemsSource="{Binding}" HeadersVisibility="Column" IsReadOnly="True" AutoGeneratingColumn="OnAutoGeneratingColumn"/>
    </Grid>
    

    【讨论】:

      猜你喜欢
      • 2011-03-30
      • 1970-01-01
      • 2017-08-04
      • 2012-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 2012-01-26
      相关资源
      最近更新 更多