2009-08-28 4 views
1

私はListViewのItemTemplateであるグリッドにあるTextBlockを持っています。私は、ウィンドウがサイズ変更されたときにそれらが成長するようにアイテムを持っていますが、TextBlockをそのサイズに制限する方法を理解することはできません。私はColumnDefinitionの幅でこれをやろうとしました.Widthを固定数(たとえば350)に設定すると、テキストは正しく折り返されますが、ウィンドウが展開されるとTextBlockは展開されません。幅を「*」に設定すると、水平スクロールバーが表示され、テキストは右に移動して折り返されません。ListViewのグリッド内のWPF TexBlockのサイズが正しくない?

ここで間違っているのは何ですか?

<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> 

答えて

2

ListViewはテンプレート内にScrollViewerを使用してスクロールを許可するため、水平スクロールバーが表示されます。 ScrollViewerを水平方向にスクロールしないようにするだけです。 ListViewにScrollViewer.Horizo​​ntalScrollBarVisibility = "無効"と設定してください。だから、あなたは次のようなものを持っているでしょう:

<ListView Margin="6" 
      ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
      Name="CriticalErrorsListView" 
      HorizontalContentAlignment="Stretch" 
      ItemsSource="{Binding Path=.}" 
      MouseDoubleClick="CriticalErrorsListView_MouseDoubleClick"> 
    <!-- The rest goes here. --> 
</ListView> 

希望します。

+0

完璧!私はScrollViewer.Horizo​​ntalScrollBarVisibilityを使用していましたが、ListView自体は使用していませんでした。ありがとう! – ChrisHDog

関連する問題