2011-04-09 3 views
0

나는 이것에 관해 몇 가지 인터넷 검색을 수행하여 아래의 예와 비슷한 것을 한 몇 가지 참조를 발견했다. 이 작업을 시도하면 첫 번째 열이 오른쪽 처음 정렬됩니다. HorizontalContentAlignment의 설정자가 없으면 열의 오른쪽 가장자리를 추적하는 대신 열의 크기가 조정될 때 텍스트가 그대로 유지됩니다. setter를 추가하면 크기가 조정될 때 TextBlock이 가운데에 정렬되는 효과가 있지만 열에 맞게 늘리지는 않습니다. 첫 번째 열의 배경색을 변경하여 어떤 일이 일어나고 있는지 알려줍니다. 내가 프레임 워크의 버전 3.5 SP1과 VS 2008을 사용하고 있습니다. WPF ListView - 크기를 조정할 수있는 열을 올바르게 사용할 수 있도록 열 정렬을 얻는 방법?

업데이트

<Window.Resources> <XmlDataProvider x:Key="CharacterData"> <x:XData> <Data xmlns=""> <Character First="Bart" Last="Simpson" /> <Character First="Homer" Last="Simpson" /> <Character First="Lisa" Last="Simpson" /> <Character First="Maggie" Last="Simpson" /> <Character First="Marge" Last="Simpson" /> </Data> </x:XData> </XmlDataProvider> </Window.Resources> <ListView ItemsSource="{Binding Source={StaticResource CharacterData}, XPath=Data/Character}" > <ListView.ItemContainerStyle> <Style TargetType="ListViewItem"> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> </Style> </ListView.ItemContainerStyle> <ListView.View> <GridView> <GridViewColumn Width="100" Header="First Name" > <GridViewColumn.CellTemplate > <DataTemplate> <TextBlock Width="98" Margin="-6,0" TextAlignment="Right" Text="{Binding [email protected]}" Background="Aqua" HorizontalAlignment="Stretch" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Width="100" Header="Last Name"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Width="100" Margin="-6,0" TextAlignment="Left" Text="{Binding [email protected]}" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView> 

: 텍스트 상자의 폭 파라미터를 분리
이 제대로 작동 할 ItemContainerStyle 정의 연신 수있다.

<DataTemplate> 
    <TextBlock Margin="-6,0" TextAlignment="Right" Text="{Binding [email protected]}" Background="Aqua" /> 
</DataTemplate> 

답변

1

목록보기에 HorizontalContentAlignment="Stretch"을 입력해야합니다.

업데이트 : 나는 목록보기 자체를 의미하지 컨테이너 스타일 :

<ListView ItemsSource="{Binding Source={StaticResource CharacterData}, XPath=Data/Character}" HorizontalContentAlignment="Stretch"> 

갱신 2 : 난 그냥 당신이 당신의 텍스트 블록의 Width을 설정 한 것으로 나타났습니다 - 그렇지 않은 그 이유는 스트레칭. Width을 제거하고 MinWidth으로 바꾸십시오. 최소 너비를 원하면

+0

HorizontalContentAlignment에 대한 설정기를 추가하는 것을 잊었습니다.이 예제는 대부분의 예제에서 나타났습니다. 내 질문이 업데이트되었습니다. 그것은 약간의 효과가 있습니다. 텍스트 블록은 묵는 것보다는 열에 집중하지만 그 공간을 채우기 위해 늘리지는 않습니다. – Shane

+0

@Shane : 대답을 업데이트했습니다. – ChrisWue

+0

ItemContainer 스타일의 setter 사용 여부와 관계없이이 방법을 시도했지만 도움이되지 않습니다. – Shane

관련 문제