WPF listbox嵌套模板后IsHitTestVisible的false或true

冏程序 2015-09-06 05:56:48
XAML代码如下:
<ListBox x:Name="listbox1" BorderThickness="0.5" ItemsSource="{Binding Nodes}" HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" VerticalAlignment="Top" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.CanContentScroll="True" ScrollViewer.PanningMode="Both" >
<ListBox.ItemTemplate>
<DataTemplate>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<Grid x:Name="oneGrid" Tag="1" Width="345" Height="60">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="1.5*"/>
<ColumnDefinition Width="4.3*"/>
<ColumnDefinition Width="3.5*"/>
<ColumnDefinition Width="0.2*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding OrgName}" Grid.Column="1" Grid.ColumnSpan="2" ToolTip="{Binding OrgName}" MaxWidth="160" TextTrimming="WordEllipsis" VerticalAlignment="Center"
Foreground="Black" FontSize="18" HorizontalAlignment="Left"/>
<VirtualizingStackPanel x:Name="stackPanel" Grid.Column="3" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="{Binding PoliceCount}" FontSize="13"/>
<TextBlock Text="/" Margin="2,0,2,0"/>
<TextBlock Text="{Binding PoliceCount}" FontSize="13"/>
</VirtualizingStackPanel>
</Grid>
</Expander.Header>
<Expander.Content>
<ListBox x:Name="listbox2" ItemsSource="{Binding Nodes}" BorderBrush="Transparent" BorderThickness="0"
ScrollViewer.HorizontalScrollBarVisibility="Disabled" IsHitTestVisible="True"
ScrollViewer.CanContentScroll="True" ScrollViewer.PanningMode="Both"
HorizontalAlignment="Left" VerticalAlignment="Top" SelectionChanged="listbox2_SelectionChanged"
Margin="-6,0,0,0" Width="375" Background="#F0EFEC" MouseWheel="listbox2_MouseWheel">
<ListBox.ItemTemplate>
<DataTemplate>
<Expander Style="{StaticResource ExpanderStyle}">
<Expander.Header>
<Grid x:Name="twoGrid" Tag="2" Width="365" Height="60">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="2.5*"/>
<ColumnDefinition Width="3.3*"/>
<ColumnDefinition Width="3.5*"/>
<ColumnDefinition Width="0.2*"/>
</Grid.ColumnDefinitions>
<VirtualizingStackPanel x:Name="stackPanel2" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Left" VerticalAlignment="Center" Orientation="Horizontal">
<Image Source="/Resource;component/Images/Police/NewPolice/dot.png" Width="6" VerticalAlignment="Center"/>
<TextBlock Text="{Binding OrgName}" ToolTip="{Binding OrgName}" TextAlignment="Left" Width="160" TextTrimming="WordEllipsis"
VerticalAlignment="Center" Foreground="Black" FontSize="16" HorizontalAlignment="Left" Margin="15,0,0,0"/>
</VirtualizingStackPanel>
<VirtualizingStackPanel x:Name="stackPanel2_1" Grid.Column="3" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="{Binding PoliceCount}" FontSize="13"/>
<TextBlock Text="/" Margin="2,0,2,0"/>
<TextBlock Text="{Binding PoliceCount}" FontSize="13"/>
</VirtualizingStackPanel>
</Grid>
</Expander.Header>
<Expander.Content>
<ListBox x:Name="listbox3" ItemsSource="{Binding PoliceList}" BorderBrush="Transparent" BorderThickness="0"
ScrollViewer.HorizontalScrollBarVisibility="Disabled" IsHitTestVisible="True"
ScrollViewer.CanContentScroll="True" ScrollViewer.PanningMode="Both">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid x:Name="threeGrid" Width="425" Height="50">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="2.5*"/>
<ColumnDefinition Width="3.5*"/>
<ColumnDefinition Width="2.5*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Rectangle HorizontalAlignment="Left" VerticalAlignment="Stretch" Fill="{Binding Status, Converter={StaticResource ps2b}}" Width="10" Margin="5,2,1,2" Grid.Column="0"/>
<VirtualizingStackPanel x:Name="stackPanel3" Cursor="Hand" Margin="10,0,0,0" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Orientation="Horizontal">
<TextBlock Text="{Binding Plate}" ToolTip="{Binding Plate}" TextAlignment="Left" Width="160" FontSize="14" FontWeight="Black" TextWrapping="NoWrap" TextTrimming="WordEllipsis" VerticalAlignment="Center" Margin="15,0,0,0"/
</VirtualizingStackPanel>
<VirtualizingStackPanel x:Name="stackPanel3_1" Grid.Column="3" Grid.ColumnSpan="2" VerticalAlignment="Center" Orientation="Horizontal" HorizontalAlignment="Right">
<Image Source="/Resource;component/Images/Police/NewPolice/tellphone.png" HorizontalAlignment="Left" Width="24" Height="24" Margin="15,0,15,0"/>
<Image Source="/Resource;component/Images/Police/NewPolice/walkie-talkie.png" HorizontalAlignment="Left" Width="13" Height="30" Margin="8,0,15,0"/>
<Image Source="/Resource;component/Images/Police/NewPolice/camera.png" HorizontalAlignment="Left" Width="24" Height="24" Margin="8,0,13,0"/>
</VirtualizingStackPanel>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Expander.Content>
</Expander>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Expander.Content>
</Expander>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
1、当listbox2的IsHitTestVisible的属性为false时,可对列表进行操作,但不支持鼠标滚轮操作;
2、当listbox2的IsHitTestVisible的属性为true时,不可对列表操作,能支持鼠标滚轮操作
现在我想即支持对列表进行操作,有支持鼠标滚轮操作,有那位大神帮帮忙!!!!!
这个问题纠结我很长世间了,各位高手帮帮忙了!!!!!!!!!
...全文
193 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ouylvr 2018-07-06
  • 打赏
  • 举报
回复
listBox.PreviewMouseWheel += (sender, e) => { var eventArg = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta); eventArg.RoutedEvent = UIElement.MouseWheelEvent; eventArg.Source = sender; ListBox.RaiseEvent(eventArg); }; 界面的构造函数加入这段代码,listBox为ListBox空间Name
冏程序 2015-09-07
  • 打赏
  • 举报
回复
额,还有那位大哥能帮帮忙啊。
exception92 2015-09-07
  • 打赏
  • 举报
回复
引用 3 楼 ht_zhaoliubin 的回复:
大哥你这个方法不行啊,只要把那个熟悉IsHitTestVisible=true,listbox2上的事件根本就不触发?
那就不行喽。只能取其一
冏程序 2015-09-07
  • 打赏
  • 举报
回复
大哥你这个方法不行啊,只要把那个熟悉IsHitTestVisible=true,listbox2上的事件根本就不触发?
exception92 2015-09-07
  • 打赏
  • 举报
回复
获取 listbox2 中的ScrollViewer 对象 在鼠标滚轮事件中 通过 它的ScrollToVerticalOffset 方法控制VerticalOffset 值就可以了。 获取ScrollViewer方法参见: http://blog.csdn.net/duanzi_peng/article/details/17094639
冏程序 2015-09-07
  • 打赏
  • 举报
回复
有那位高手帮帮忙,看能不能解决这个问题?
冏程序 2015-09-06
  • 打赏
  • 举报
回复
希望有那位高手帮帮忙!!!!!!! 谢谢了!!!!!!!!!!!!!!!!!!

8,737

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧