WPF,解决Listbox,按住ListboxItem向下拖出Listbox,横向滚动条跑到最后。

类似这种样式的控件,。,在横向滚动条隐藏的情况下有这样的问题。(横向滚动条显示的时候也会,,目前不知道怎么解决。)

因为这个控件偏移是利用ListBox的ItemsPanelTemplate模版里的StackPanel的宽度通过设置"(UIElement.RenderTransform).(TranslateTransform.X)"来偏移到指定位置。

所以的横向滚动条必须在最前面不能动,不然便宜位置会出错。

如图按住4,按住鼠标向下移动出ListBox,滚动条会自动跑到最后.

解决方法

How to disable ListBox auto scroll on mouse down and auto scrollintoview on item selected?

    public class TListBoxDisableScroll : System.Windows.Controls.ListBox
    {
        #region 解决按住Item向下拖动,滚动条跑到最后
        protected override void OnPreviewMouseMove(MouseEventArgs e)
        {
            base.OnPreviewMouseMove(e);
            e.Handled = true;
        }

        protected override void OnIsMouseCapturedChanged(DependencyPropertyChangedEventArgs e)
        {

        }
        #endregion
    }

  或者强制滚动到第一个

        private void ScrollViewer_ScrollChanged(object sender, System.Windows.Controls.ScrollChangedEventArgs e)
        {
            theListBox.ScrollIntoView(theListBox.Items[0]);
        	// 在此处添加事件处理程序实现。
        }

  

时间: 2024-10-06 21:49:45

WPF,解决Listbox,按住ListboxItem向下拖出Listbox,横向滚动条跑到最后。的相关文章

发掘ListBox的潜力(一):自动调整横向滚动条宽度

<自绘ListBox的两种效果>一文帖出之后,从反馈信息来看,大家对这种小技巧还是很认同.接下来我将继续围绕ListBox写一系列的文章,进一步发掘ListBox的潜力,其中包括:自动调整横向滚动条宽度.即时提示(Tips).拖放插入点提示等,并在最后制作一个在滚动区内的ListBox组. 自动调整横向滚动条宽度 网上可以找到很多让Listbox产生横向滚动条的文章,其中的方法基本一样,就是定义一个函数,遍历Items取得最大的TextWidth值,然后发Listbox发消息LB_SETHOR

WPF绑定的ListBox获取ListBoxItem及GoToState应用

现公司项目中需要制作一个扇形菜单,菜单项是用ListBox重写Style实现的,其数据是绑定的.菜单的每一项都有Normal,MouseOver和Selected三种状态,这三种状态当然可以通过鼠标移动和点击控制,但现在要通过代码来改变控件外观实现三种状态切换,该如何处理呢?   1.WPF绑定的ListBox获取ListBoxItem WPF中如果ListBox的ItemSource为绑定的,则ListBox.Items为绑定的数据源,而非ListBoxItem.如果直接通过如下代码会发现无法

WPF 解决View属性不能注销的问题

当重复创建View并绑定同一个ViewModel后,ViewModel中的字段更新,在新的View中的没有反应或者在View中找不到相应的视觉树(如ListBox的ListBoxItem) 初始的解决方案:View关闭后,注销属性Unregister Dependency. 如果可以将属性注销,貌似是可行的 注销属性 RemoveDependency(LoadCousewareItemAnimationProperty); 1 private void RemoveDependency(Depe

解决Qt程序在Linux下无法输入中文的办法

一位网友问我如何在Linux的Qt的应用程序中输入中文,我一开始觉得不是什么问题,但是后面自己尝试了一下还真不行.不仅是Qt制作的应用程序,就连Qt Creator都无法支持.后面看了一些资料,了解了Qt应用程序的方法,这里和大家分享一下. 写一个bash脚本,内容如下: #!/bin/sh cd YourBinaryDirectory export QT_IM_MODULE=iBus ./YourProjectBinary 如果想让Qt Creator也能输入中文,那么可以这么写: #!/bi

解决cordova命令行方式下build或者run的时候报错问题

phonegap3.0之后就将项目的生成方式做了很大的更改,原来是在eclipse里面修改生成并编译运行,但是3.0之后它的目录结构发生了很大变化,只修改主目录下面的index.html如果不build的话有时候是不起作用的,因为它的platform文件夹中还有各个平台的目录.比如安卓和IOS,在主目录www下面修改index.html之后必须要build才能生效,否则很多时候你会发现修改了不起作用,这是因为在assets目录下还有个www文件夹,真正运行的是这个文件夹下面的index.html

解决tmux在非root下无法正常运行的问题

strace tmux 跟踪发现提示无权限操作 同时在桌面下无法使用lxterminal, gnome-terminal等, 查找archlinux官方论坛发现跟pts有关 因为现在使用的是systemd会自动处理pts 因些在/etc/fstab中 去除 devpts                 /dev/pts      devpts    defaults            0      0 解决tmux在非root下无法正常运行的问题

距离北京奥运还有359天,发布WPF版本的北京2008标志(下)

原文:距离北京奥运还有359天,发布WPF版本的北京2008标志(下) 图片显示效果:? XAML代码: <Viewbox Width="463.548828" Height="370.816895"? xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"? xmlns:x="http://schemas.microsoft.com/winfx/2006

完美解决safari、微信浏览器下拉回弹效果。

完美解决safari.微信浏览器下拉回弹效果,只保留局部回弹效果. CSS代码 .box{ overflow: auto; -webkit-overflow-scrolling: touch; } HTML代码 <body class="box"> <div class="scroll" style="height:1500px"> </div> </body> JS代码 var overscrol

解决IOS safari在input focus弹出输入法时不支持position fixed的问题

该文章为转载 我们在做移动web应用的时候,常常习惯于使用position:fixed把一个input框作为提问或者搜索框固定在页面底部.但在IOS的safari和webview中,对position:fixed的支持不是很好(在IOS5之前甚至还不支持position:fixed).我遇到的其中一个问题就是,在iOS6+环境下,input focus弹出输入法的时候,设置了position fixed的input框浮在页面上了,而不是吸附在软键盘上.效果如图(图片来源于网上): 而Androi