WPF: ListView מקונן, בעבוע אירוע הגלילה לScrollView הראשי
-
בתפריט הצד שיצרתי, אני מקונן ליסט בתוך ליסט כדי להציג את רשימת הספרים, ואת הפרקים שלהם.
הענין הוא שכאשר המשתמש מנסה לגלול עם העכבר כאשר הוא נמצא מעל הליסט - זה לא עושה דבר. אלא הוא חייב לעמוד על פס הגלילה הראשי - כדי שזה יגלול את התפריט.
הבעיה היא: א. זה לא נוח. ב. אני רוצה להסתיר את פס הגלילה, וכך א"א לדעת בדיוק איפה לעמוד כדי לגלול.מחיפוש בגוגל ראיתי שהבעיה מוכרת, ועניינה הוא שהListView בולע את אירוע הגלילה ולא מגלגל אותו הלאה.. וכיון שהוא מוגדר שלא לגלול ע"י עצמו, אלא ע"י הפקד הראשי - לא מתרחש דבר.
ניסיתי את הפתרון המוצע כאן (והתקנתי אף את הBlend SDK כדי שזה יעבוד..)
אך זה לא עושה דבר..
אשמח לעזרה!!
תודה רבה רבה מראש!!!
אברהם.מצ"ה הקוד של הטמפלט:
<DataTemplate x:Key="MetroDataTemplate1"> <Expander Style="{DynamicResource MenuExpanderStyle}" Expanded="MenuExpanderClick_Expanded" Height="auto" > <Expander.Header> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="40"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Path Data="{Binding Image}" Stretch="Uniform" Width="23" Height="23" Fill="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem, Mode=FindAncestor}, Path=Foreground}" /> <StackPanel Grid.Column="1" Margin="5"> <TextBlock Text="{Binding Path=Title, FallbackValue=Title}" FontFamily="Segoe UI" FontSize="16" Foreground="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem, Mode=FindAncestor}, Path=Foreground}" /> </StackPanel> </Grid> </Expander.Header> <Grid ScrollViewer.CanContentScroll="False"> <ListView HorizontalAlignment="Left" VerticalAlignment="Top" Background="{x:Null}" BorderBrush="{x:Null}" ItemsSource="{Binding SubMenu}" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden" ScrollViewer.CanContentScroll="False" SelectionChanged="SubSideBar_SelectionChanged"> <ListView.ItemTemplate> <DataTemplate> <Expander Style="{DynamicResource MenuExpanderStyle}" Expanded="SubMenuClick_Expanded"> <Expander.Header> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="40"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Path Margin="20,0,0,0" Data="{Binding Image}" Stretch="Uniform" Width="18" Height="18" Fill="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem, Mode=FindAncestor}, Path=Foreground}" /> <Grid Grid.Column="1" Margin="5"> <TextBlock Text="{Binding Path=Title}" FontFamily="Segoe UI light" FontSize="14" Foreground="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem, Mode=FindAncestor}, Path=Foreground}" /> </Grid> </Grid> </Expander.Header> <Grid> <ListView HorizontalAlignment="Left" VerticalAlignment="Top" Height="auto" Background="{x:Null}" BorderBrush="{x:Null}" ItemsSource="{Binding SubMenuLevel2}" ScrollViewer.CanContentScroll="False" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden" SelectionChanged="SubSideBarLevel2_SelectionChanged"> <ListView.ItemTemplate> <DataTemplate> <TextBlock Margin="50,5,5,5" Text="{Binding Path=Title, FallbackValue=Title}" FontFamily="Segoe UI light" FontSize="14" Foreground="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem, Mode=FindAncestor}, Path=Foreground}" ></TextBlock> </DataTemplate> </ListView.ItemTemplate> <d:Interaction.Behaviors> <local:IgnoreMouseWheelBehavior /> </d:Interaction.Behaviors> </ListView> </Grid> </Expander> </DataTemplate> </ListView.ItemTemplate> <d:Interaction.Behaviors> <local:IgnoreMouseWheelBehavior /> </d:Interaction.Behaviors> </ListView> </Grid> </Expander> </DataTemplate>
פורסם במקור בפורום CODE613 ב08/05/2016 22:42 (+03:00)
-
על פי האמור בסטאק זה לא מתאים כי אין לו יכולת של בחירת פריטים, אלא הם ממליצים להשתמש ב ListView.
מה אפשר לעשותתודה רבה!
פורסם במקור בפורום CODE613 ב09/05/2016 23:48 (+03:00)
-
על פי האמור בסטאק זה לא מתאים כי אין לו יכולת של בחירת פריטים, אלא הם ממליצים להשתמש ב ListView.
מה אפשר לעשותתודה רבה!
אם זו הבעיה אפשר לממש את בחירה לבד, כל פריט שמקבל פוקוס הוא הנבחר, זהו.
אבל באמת כדאי שתעלה פרוייקט כמו שאמר דודפורסם במקור בפורום CODE613 ב11/05/2016 09:13 (+03:00)
-
טוב לא הספקתי להעלות.. (יותר נכון אפי' לא ליצור פרוייקט דמו..)
בכל מקרה כפי שדוד ל.ט. המליץ - הפקד המתאים ביותר בשביל זה הוא : TreeView
מקשרים אליו את האובייקט הראשי - והוא יוצר את ההיררכיה הנדרשת אוט'. ונשאר רק להתאים את הטמפלייטים כפי הצורך..
שבת שלום ומבורך לכולנו!!פורסם במקור בפורום CODE613 ב20/05/2016 18:13 (+03:00)