zoukankan      html  css  js  c++  java
  • WPF ListBox横向布局并支持鼠标横向滚动

    xaml代码:

    <ItemsPanelTemplate x:Key="ItemsPanelTemplate1">
      <VirtualizingStackPanel Orientation="Horizontal" IsItemsHost="True"/>
    </ItemsPanelTemplate>
    
     
    

      

    <ListBox x:Name="listbox" 
                                 ItemsPanel="{DynamicResource ItemsPanelTemplate1}" 
                                 ScrollViewer.CanContentScroll="False"  
                                 ScrollViewer.PanningMode="HorizontalOnly"  
                                 ItemContainerStyle="{DynamicResource ListBoxItemStyleGroup1}"
                                 HorizontalContentAlignment="Center" 
                                 ScrollViewer.HorizontalScrollBarVisibility="Hidden">
    </ListBox>
    

    cs代码:

    public Demo()
    {
                InitializeComponent();
                listbox.AddHandler(ListBox.MouseWheelEvent, new MouseWheelEventHandler(ListBox_MouseWheel), true);
    }
    
    private void ListBox_MouseWheel(object sender, MouseWheelEventArgs e)
    {
                ItemsControl items = (ItemsControl)sender;
                ScrollViewer scroll = FindVisualChild<ScrollViewer>(items);
                if (scroll != null)
                {
                    int d = e.Delta;
                    int currentNum = 0;
                    var horOffset = (int)Math.Round(scroll.HorizontalOffset);
                    if (d > 0)
                    {
                        scroll.LineLeft();
                        currentNum = horOffset / (int)ListSignal.ActualWidth + 1;
                    }
                    if (d < 0)
                    {
    
                        scroll.LineRight();
                        currentNum = horOffset / (int)ListSignal.ActualWidth + 1;
                    }
                    scroll.ScrollToTop();
                }
    }
    

     

    这样ListBox就可以横向滚动了

  • 相关阅读:
    Sublime Text 2.0.2 注册码激活
    常用的接口查询,会持续更新中……
    JavaScript获取访问设备信息
    Param指南
    HTML5调用手机摄像头,仅仅支持OPPOHD浏览器
    GET传值
    关于IE缓存
    浏览器的类别及介绍
    JS调用C#中的变量
    在VS2012中设置默认启动
  • 原文地址:https://www.cnblogs.com/cuigzh/p/14299103.html
Copyright © 2011-2022 走看看