2014-04-30 108 views
0

所以我對.NET和WPF很陌生,希望有人能告訴我我做錯了什麼。我有一個基本上只是一個數據網格的WPF應用程序。對於我來說,無論何時父窗口改變大小,我都無法弄清楚如何讓DataGrid自動調整大小,而不必訴諸寫一堆代碼來監視窗口大小調整事件。在OS X/Cocoa/Interface Builder上,這非常簡單直接,我只能假設WPF具有類似的功能。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> 

回答

0

所以我想通了感謝WPF Grid allow controls inside to auto size width/height

編輯: 因此,要解決的意見(有關這仍然是新來的抱歉)。我做錯了什麼,沒有定義Grid.ColumnDefinitions(或RowDefinitions取決於你如何組織事物),以及爲網格內的控件指定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> 
相關問題