2014-03-03 42 views
3

我使用複雜標題與像this數據網格。但是我得到了滾動條可見性的問題,它也會佔用一個空間,所以寬度無法與網格完美匹配。我的網格就是這樣的<Column.Definition>當水平滾動條可見時如何修復DataGrid中列的寬度?

<ColumnDefinition Width="{Binding ElementName=Column1, Path=ActualWidth}"/> 
    <ColumnDefinition Width="{Binding ElementName=Column2, Path=ActualWidth}"/> 
    <ColumnDefinition Width="{Binding ElementName=Column3, Path=ActualWidth}"/> 
    <ColumnDefinition Width="{Binding ElementName=Column4, Path=ActualWidth}"/> 
    <ColumnDefinition Width="{Binding ElementName=Column5, Path=ActualWidth}"/> 
    <ColumnDefinition Width="{Binding ElementName=Column6, Path=ActualWidth}"/> 
    <ColumnDefinition Width="{Binding ElementName=Column7, Path=ActualWidth}"/> 
... till column 29 

安達我有數據網格Column.Definition這樣

<DataGrid.Columns> 
<mui:DataGridTextColumn x:Name="Column1" Width="50" Header="Segmen" Binding="{Binding B4R1,UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/> 
<mui:DataGridTextColumn x:Name="Column2" Width="50" Header="Fisik" Binding="{Binding B4R2,UpdateSourceTrigger=PropertyChanged , Mode=TwoWay}" /> 
<mui:DataGridTextColumn x:Name="Column3" Width="50" Header="Sensus" Binding="{Binding B4R3,UpdateSourceTrigger=PropertyChanged , Mode=TwoWay}"/> 
<mui:DataGridTextColumn x:Name="Column4" Width="50" Header="Tempat Tinggal" Binding="{Binding B4R4,UpdateSourceTrigger=PropertyChanged , Mode=TwoWay}" /> 
<mui:DataGridTextColumn x:Name="Column5" Width="50" Header="Campuran" Binding="{Binding B4R5,UpdateSourceTrigger=PropertyChanged , Mode=TwoWay}" /> 
.... till column29 

的結果仍然是這樣的:

我怎樣才能解決的匹配寬度與scollbar列可見像這樣? enter image description here

UPDATE

它仍然保留空間,雖然我已經設置了寬度..

enter image description here

更新2

我不知道成功調整的滾動條,但空間仍然存在 enter image description here

回答

0

首先,你可以隱藏的ScrollBar這樣的可見性:

<DataGrid Name="dataGrid" 
      ScrollViewer.VerticalScrollBarVisibility="Hidden" ... /> 

其次,你可以設置一個固定的WidthScrollBar

<Window x:Class="MyClass.MainWindow" 
     xmlns:sys="clr-namespace:System;assembly=mscorlib" 

<DataGrid Name="dataGrid"> 
    <DataGrid.Resources> 
     <sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">20</sys:Double> 
     <sys:Double x:Key="{x:Static SystemParameters.HorizontalScrollBarHeightKey}">20</sys:Double> 
    </DataGrid.Resources> 
... 
</DataGrid> 

第三,你可以設置樣式爲ScrollBar

<DataGrid.Resources> 
    <Style TargetType="{x:Type ScrollBar}"> 
     <Style.Triggers>      
      <Trigger Property="Orientation" Value="Vertical"> 
       <Setter Property="Width" Value="10" /> 
       <Setter Property="MinWidth" Value="10" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</DataGrid.Resources> 
+0

它仍然沒有工作..它仍然保持空間,雖然我已經設置了寬度..你可以看到我的更新帖子在圖像.. – mrhands

+0

@mrhands:然後你可以設置'ScrollViewer.VerticalScrollBarVisibility =「Visible」',設置固定寬度並在'ColumnDefinition'中設置這個寬度。 –

+0

@mrhands:試着設置'ScrollBar'的樣式,請參閱我的編輯。 –

相關問題