ListView의 그리드에있는 WPF TexBlock은 올바르게 크기를 조정하지 않습니까?
-
20-09-2019 - |
문제
ListView의 항목 판인 그리드에있는 TextBlock이 있습니다. 창이 크기가 커지면 자라도록 항목이 있지만 텍스트 블록을 그 크기로 제한하는 방법을 알 수 없습니다. 칼럼 정의의 너비 로이 작업을 시도했습니다. 폭을 고정 숫자 (350)로 설정하면 텍스트가 올바르게 감싸지만 창을 확장 할 때 텍스트 블록이 확장되지 않습니다. "*"너비는 수평 스크롤 막대가 있고 텍스트는 오른쪽으로 튀어 나와 포장되지 않습니다.
내가 뭘 잘못하고 있는지 아십니까?
<GroupBox Header="Urgent Items" Margin="8,8,8,340" Name="UrgetItemsGroupBox">
<Grid>
<ListView Margin="6" Name="CriticalErrorsListView" HorizontalContentAlignment="Stretch" ItemsSource="{Binding Path=.}" MouseDoubleClick="CriticalErrorsListView_MouseDoubleClick">
<ListView.Background>
<LinearGradientBrush EndPoint="-0.192,0.529" StartPoint="0.998,0.519">
<GradientStop Color="#FFD2D2D2" Offset="0"/>
<GradientStop Color="#FFFFFFFF" Offset="1"/>
</LinearGradientBrush>
</ListView.Background>
<ListView.ItemTemplate>
<DataTemplate>
<Border Margin="2,2,2,3" BorderBrush="#FF847F6E" CornerRadius="10" BorderThickness="3">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="25" />
<RowDefinition Height="20" />
<RowDefinition Height="20" />
<RowDefinition Height="75" />
</Grid.RowDefinitions>
<Image Grid.Row="0" Grid.RowSpan="5" Grid.Column="0" Margin="2,2,2,2" Source="Images\errorIcon.png" />
<TextBlock Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" Margin="2,2,2,2" Text="{Binding Path=ApplicationName}" FontFamily="Calibri" FontWeight="Bold" FontSize="18" />
<TextBlock Grid.Row="1" Grid.Column="2" Margin="10,2,10,2" Text="{Binding Path=ErrorTime}" FontFamily="Calibri" FontSize="12" />
<TextBlock Grid.Row="2" Grid.Column="2" Margin="10,2,10,2" Text="{Binding Path=ErrorPerson}" FontFamily="Calibri" FontSize="12" />
<TextBlock Grid.Row="3" Grid.Column="2" Margin="2,2,2,2" Text="{Binding Path=ShortDescription}" TextWrapping="Wrap" />
</Grid>
</Border>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</GroupBox>
해결책
ListView는 스크롤을 허용하기 위해 템플릿에서 ScrollViewer를 사용하기 때문에 수평 스크롤 막대가 표시됩니다. 수평으로 스크롤하지 않도록 ScrollViewer라고 말하면됩니다. 방금 설정했습니다 ScrollViewer.horizontalscrollbarvisibility = "비활성화" ListView에서. 그래서 당신은 다음과 같은 것을 가질 것입니다 :
<ListView Margin="6"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
Name="CriticalErrorsListView"
HorizontalContentAlignment="Stretch"
ItemsSource="{Binding Path=.}"
MouseDoubleClick="CriticalErrorsListView_MouseDoubleClick">
<!-- The rest goes here. -->
</ListView>
도움이 되었기를 바랍니다.
제휴하지 않습니다 StackOverflow