Frage

Ich habe einen Textblock, der in einem Grid ist, die eine ItemTemplate für eine Listview ist. Ich habe die Einzelteile, so dass sie wachsen, wenn die Fenstergröße verändert wird, aber ich kann nicht herausfinden, wie die TextBlock- hat auf diese Größe beschränkt werden. Ich habe versucht, dies mit der Breite auf der Column zu tun - wenn ich die Breite auf eine feste Zahl gesetzt (etwa 350) der Text korrekt umbrochen, aber offensichtlich die TextBlock- sich nicht ausdehnt, wenn das Fenster erweitert wird - wenn ich das Set Breite auf „*“ die gibt es dann eine horizontale Bildlaufleiste und der Text läuft nach rechts ab und wickeln Sie es nicht.

Jede Idee, was ich falsch hier?

<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>
War es hilfreich?

Lösung

Sie sehen horizontale Bildlaufleiste, weil Listview verwendet Scroll in seiner Vorlage Scrollen zu ermöglichen. Alles, was Sie tun müssen, ist Scroll sagen nicht horizontal scrollen. Gerade gesetzt ScrollViewer.HorizontalScrollBarVisibility = "Disabled" auf der Listview. So können Sie etwas davon haben werden:

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

Hope, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top