답변:
Width="*"
열 을 사용하면 사용 가능한 공간이 확장됩니다.
모든 열이 그리드를 나누도록하려면 모든 열에 동일하게 적용하십시오. 나머지 공간을 채우려면 나머지는 "자동"또는 특정 너비로 해당 열에 적용하면됩니다.
Width="0.25*"
열이 사용 가능한 너비의 1/4을 차지 하도록하려면 (예를 들어)를 사용할 수도 있습니다 .
<DataGrid AutoGenerateColumns="True" ColumnWidth="*" ItemsSource={Binding} />
ColumnWidth="*"
상의 데이터 그리드 및 Width="*"
indivdual 열에는 원하는 효과가
언급했듯이 ColumnWidth="*"
는 XAML의 DataGrid에서 완벽하게 잘 작동했습니다.
이 컨텍스트에서 사용했습니다.
<DataGrid ColumnWidth="*" ItemsSource="{Binding AllFolders, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
열 Width
속성을 다음과 같은 비례 너비로 설정합니다.*
내 2 센트->
파티에 매우 늦음
DataGrid-> Column-> Width = "*"는 DataGrid 상위 컨테이너에 고정 너비가있는 경우에만 작동합니다.
예 : 나는 DataGrid에 Grid-> Column에 width = "Auto"를 넣은 다음 Width = "*"를 DataGrid에 넣으면 작동하지 않지만 Grid-> Column Width = "450"을 설정하면 고정됨을 의미합니다.
HorizontalAlignment = "Center"(기본값은 "Strech")를 추가했고 데이터 그리드를 필요한만큼만 넓게 만들었 기 때문에 문제가 해결되었습니다. (있는 경우 데이터 그리드의 너비 설정을 제거했습니다.)
이 경우 xaml 그리드의 마지막 열이 확장되어 나머지 공간을 차지하지 않습니다
AutoGeneratedColumns="True"
.
C # 해결 방법을 찾고있는 경우 :
어떤 이유로 "AutoGeneratedColumns"를 활성화해야하는 경우, 자동 크기 조정을 원하는 열을 제외한 모든 열의 너비를 지정하는 것이 좋습니다 ( 나머지 공간을 차지 하지는 않지만 크기는 세포의 내용 ).
예 (dgShopppingCart는 내 DataGrid 임) :
dgShoppingCart.Columns[0].Visibility = Visibility.Hidden;
dgShoppingCart.Columns[1].Header = "Qty";
dgShoppingCart.Columns[1].Width = 100;
dgShoppingCart.Columns[2].Header = "Product Name"; /*This will be resized to cell content*/
dgShoppingCart.Columns[3].Header = "Price";
dgShoppingCart.Columns[3].Width = 100;
dgShoppingCart.Columns[4].Visibility = Visibility.Hidden;
사용자가 창을 최대화 할 때 DataGrid의 크기를 조정해야했기 때문에 나에게는 해결 방법으로 작동합니다.
AutoGenerateColumns="True"
무엇입니까?