WPF: טקסטבלוק בתוך ListView - אין גלישת שורות
-
בתכנה של הספרים, יש לי חלון המאפשר לחפש בספרים ולקבל את כל התוצאות במרוכז.
את התוצאות אני מציג בתוך ListView המכיל את הנתיב בו מופיעה התוצאה (כלומר, שם ספר, פרק, פסקה וכדו') וכן כמה שורות מאותו מקור, כדי שהמשתמש יוכל בקלות לדעת האם זהו המקור אותו הוא חיפש או לא.
לשם כך יצרתי דטה טמפלט, המכיל שתי טקסטבלוקים, בראשון מוצג הנתיב, ובשני מוצג תוכן החיפוש.
הענין הוא שאני רוצה שכאשר הוא ממלא את כל השורה הוא יגלוש לשורה הבאה, אך זה לא עובד לי, אא"כ מראש אני מגדיר לגריד האבא רוחב קבוע מראש (או לכל הפחות רוחב מקסימום). אולם, אני לא רוצה לעשות זאת, כיון שאני רוצה שזה יתאים לכל מסך לפי גודלו.
כתבתי את הקוד הבא:<ListView Grid.Row="1" Margin="10" Background="{x:Null}" x:Name="resultSearch" ScrollViewer.CanContentScroll="False" ItemsSource="{Binding}" > <ListView.ItemTemplate> <DataTemplate> <Grid > <Grid.RowDefinitions> <RowDefinition /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <StackPanel Orientation="Horizontal" Margin="2" > <TextBlock FontSize="16" Margin="5,0" FontWeight="Bold" Foreground="Blue" > <Run Text="{Binding Book}"></Run>, <Run Text="{Binding SubBook}"></Run>, <Run Text="{Binding Part}"></Run> <Run Text="{Binding Paragraph}"></Run> </TextBlock> </StackPanel> <!--זו הטקסטבלוק שאינה גולשת--> <TextBlock Grid.Row="1" TextWrapping="WrapWithOverflow" FontSize="16" AllowDrop="True" TextAlignment="Justify" FontFamily="Narkisim" > <Run Text="{Binding BeforeValue}"></Run> <Run FontWeight="Bold" Text="{Binding Value}"></Run> <Run Text="{Binding AfterValue}"/> </TextBlock> </Grid> </DataTemplate> </ListView.ItemTemplate> </ListView>
אמנם, אם אני משנה את המאפיין: TextWrapping לערך Wrap זה נותן לי פסי גלילה לרוחב כדי שאוכל לגלול ולראות את כל השורה, אך זה לא נותן לי גלישה שורה.
מה עושים? יש למישהו רעיון, או שיש פקד אחר?
תודה רבה רבה מראש!!פורסם במקור בפורום CODE613 ב31/05/2016 18:21 (+03:00)