我有一個WPFWindow
與DataGrid
內Grid
這樣的:WPF全寬的DataGridColumn在DataGrid的寬度
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" SizeToContent="WidthAndHeight" WindowStyle="ToolWindow" ResizeMode="NoResize">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock FontSize="20">Some header with some pretty longish text</TextBlock>
<DataGrid Grid.Row="1" Height="200">
<DataGrid.Columns>
<DataGridTextColumn Header="Column1" Width="*"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
我想要DataGrid
的寬度是至少寬度TextBlock
,在這種情況下,由於Grid
的ColumnDefinition
的寬度設置爲Auto
。
但不知何故,DataGrid
的Column
的寬度是最小的(甚至不能調整大小),而我預計它的寬度將被填滿。目前,它看起來像這樣:
注意窗口必須是一個ToolWindow
,它是SizeToContent
設置爲WidthAndHeight
。
對於DataGrid列,「Width =」*「'將無效。這似乎只適用於「Grid」的列。你爲什麼要這樣? – Hopeless
什麼?我**不是**在DataGrid上使用'Width =「*」',我在'DataGridColumn'上使用它。爲什麼?因爲我希望'DataGridColumn'的寬度和它的容器一樣寬。 – QuantumHive
對不起,我在Kaxaml中試過我的代碼,它的行爲與我在VS中嘗試的完全不同。有一句話要說:***有關'DataGrid'的糟糕設計***。我們幾乎不可能使用純XAML來做這件簡單的事情。我敢打賭,有一些使用代碼的方式(比如Converter),但我不會試圖用這種方式來解決這個問題。我會嘗試更純粹的XAML,如果我找到了一些我會重新添加我的答案。但現在我幾乎可以肯定這很難。 – Hopeless