[英]Width of Datagrid columns WPF
我在WPF數據網格上設置寬度時遇到問題,我有2列,一列用於“名稱”,一列用於“電子郵件”,我都希望至少為100,但是如果“名稱”較長,我希望它占用所需的空間。 現在,兩者最終都只能達到100寬度,而數據網格本身的寬度卻沒有關系。 這是我嘗試的方法:
編輯代碼:
<StackPanel>
<DataGrid Name="MemberDataGrid" Margin="10,10,10,10" ColumnWidth="*" AutoGenerateColumns="False" ItemsSource="{Binding}" SelectionMode="Single">
<DataGrid.Columns>
<DataGridTextColumn MinWidth="30" Width="Auto" Header="Name" Binding="{Binding Path=Name}" />
<DataGridTextColumn MinWidth="30" Width="*" Header="Email" Binding="{Binding Path=Email}" />
</DataGrid.Columns>
</DataGrid>
<StackPanel Orientation="Horizontal">
<Button Name="SelectMemeberButton" Click="SelectMemeberButton_Clicked" Margin="10,10,10,10" HorizontalAlignment="Center" Content="Add member"></Button>
<Button Name="RemoveMemeberButton" Margin="0,10,0,10" HorizontalAlignment="Center" Content="Remove member" Click="RemoveMemeberButton_Clicked"></Button>
</StackPanel>
</StackPanel>
您的問題中缺少我的東西,我看不到重點。 如果我看着你的窗戶,我會覺得一切正常。
這是我使用的代碼:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new Person[] {
new Person() { Name = "Paul Leary", Email="paul@contoso.com" },
new Person() { Name = "Andy Dale", Email="andy@contoso.com" },
new Person() { Name = "Mike 'The Firestarter' Douglas", Email = "an_incredibly_long_email_address@contoso.com" }
};
}
}
這是窗口:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
Title="MainWindow" Height="350" Width="600">
<StackPanel Margin="4">
<DataGrid Name="MemberDataGrid" Margin="10,10,10,10" ColumnWidth="*" AutoGenerateColumns="False" ItemsSource="{Binding}" SelectionMode="Single">
<DataGrid.Columns>
<DataGridTextColumn x:Name="Col1" MinWidth="100" Width="Auto" Header="Name" Binding="{Binding Path=Name}" />
<DataGridTextColumn x:Name="Col2" MinWidth="100" Width="*" Header="Email" Binding="{Binding Path=Email}" />
</DataGrid.Columns>
</DataGrid>
<TextBlock Text="{Binding ElementName=Col1, Path=ActualWidth, Mode=OneWay}" Margin="2" />
<TextBlock Text="{Binding ElementName=Col2, Path=ActualWidth, Mode=OneWay}" Margin="2" />
</StackPanel>
</Window>
如果運行此代碼,則可以看到第一列的寬度約為164。 同時第二列適合所有剩余空間(大約384)。 那么,此代碼是否按您需要的方式工作?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.