首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏林德熙的博客

    WPF 开启 ScrollViewer 的触摸滚动

    ScrollViewer 如果需要收到触摸消息,通过 Manipulation 触摸滚动,不能只是通过设置 IsManipulationEnabled 方法,还需要设置 PanningMode 才可以 那么如何知道滚动条的触摸事件是否触发,可以写一个类继承滚动条 public class StisvearpaHudalserevow : ScrollViewer {

    1.1K10编辑于 2022-08-04
  • 来自专栏菩提树下的杨过

    silverlight:ScrollViewer的各种高度研究

    RowDefinition Height="Auto" MinHeight="30"></RowDefinition> </Grid.RowDefinitions> <ScrollViewer Background="Azure" BorderBrush="Black" Margin="5" BorderThickness="1" Height="400"></Border> </ScrollViewer

    80680发布于 2018-01-24
  • 来自专栏林德熙的博客

    dotnet Framework 源代码 · ScrollViewer

    看完本文,可以学会如何写一个 ScrollViewer ,如何定义一个 IScrollInfo 或者给他滚动添加动画 使用 下面告诉大家如何简单使用 ScrollViewer ,一般在需要滚动的控件外面放一个 ScrollViewer 就可以实现滚动。 在 ScrollViewer 存在两个滚动方式,物理滚动 和 逻辑滚动,如果使用 物理滚动 那么滚动就是ScrollViewer做的,如何使用逻辑滚动,那么滚动就是控件自己做的。 那么我从 ScrollViewer 接收输入开始讲起 输入 如果大家使用 ScrollViewer 进行滚动,那么也许会遇到一个神奇的需求,如何在触摸下滚动。 是的,如果使用一个简单的 ScrollViewer 是无法使用触摸滚动 请看代码,写一个简单的 ScrollViewer 里面有一些矩形,可以看到这时可以进行鼠标滚动,但是触摸是无法滚动。

    96620发布于 2019-10-09
  • 来自专栏林德熙的博客

    win10 uwp 禁用 ScrollViewer 交互

    如果在 UWP 有一个控件里面有 ScrollViewer 控件,那么因为默认的 ScrollViewer 会使用触摸的交互,这样在控件就收不到触摸的交互 通过 VerticalScrollMode=" Disabled" HorizontalScrollMode="Disabled" 可以关闭 ScrollViewer 交互 接下来就是简单告诉大家如何使用 ScrollViewer 在禁用默认交互还让 ScrollViewer 滑动,先创建一个简单的 UWP 项目 打开 xaml 添加一点代码,创建一个 Canvas 放在 ScrollViewer 内,在里面放一个矩形,通过这个矩形就可以知道有没有移动 > 此时就可以看到 Grid 收到 Pointer 事件 但是如果想要 ScrollViewer 外面的控件可以收到交互同时想要让 ScrollViewer 可以和之前一样,那么就需要自己写一些代码 首先给 e) { ScrollViewer.ChangeView(ScrollViewer.HorizontalOffset - e.Delta.Translation.X

    98250发布于 2019-03-13
  • 来自专栏walterlv - 吕毅的博客

    ScrollViewer 的滚动带上动画

    ScrollViewer 的滚动带上动画 2017-12-19 12:19 WPF 的 ScrollViewer 没有水平滚动和垂直滚动的属性 OnHorizontalOffsetChanged(DependencyObject target, DependencyPropertyChangedEventArgs e) => (target as ScrollViewer 那么现在我们就加上动画: <Storyboard x:Key="ScrollStoryboard"> <DoubleAnimation Storyboard.TargetName="<em>ScrollViewer</em> : <<em>ScrollViewer</em> Grid.Row="0" Grid.RowSpan="2" Grid.Column="0" Grid.ColumnSpan="3" x:Name="<em>ScrollViewer</em> 本文会经常更新,请阅读原文: https://walterlv.com/post/<em>scrollviewer</em>-animation.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验

    1.3K20发布于 2018-09-18
  • 来自专栏林德熙的博客

    WPF 开启 ScrollViewer 的触摸滚动

    ScrollViewer 如果需要收到触摸消息,通过 Manipulation 触摸滚动,不能只是通过设置 IsManipulationEnabled 方法,还需要设置 PanningMode 才可以 那么如何知道滚动条的触摸事件是否触发,可以写一个类继承滚动条 public class StisvearpaHudalserevow : ScrollViewer { OnManipulationCompleted 同时触发之后也没有触摸 ---- 本文会经常更新,请阅读原文: https://lindexi.gitee.io/post/WPF-%E5%BC%80%E5%90%AF-ScrollViewer

    3.9K20发布于 2019-03-13
  • 来自专栏林德熙的博客

    uwp ScrollViewer content out of panel when set the long width

    I make a content with a long width in ScrollViewer and the content will out of the panel. I write a xaml with a ScrollViewer and a Grid. And than I set a content to ScrollViewer and the content is a long width Grid. <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <ScrollViewer asdasdasdasdasdasdasdasdasdaasdasdasdasdasdasdasdasdasdasdasdasdasdasdaasdasdasdasdasdasdasdasdasdasdasdasdasdasdaasdasdasdasdasdasdasdasdasdasdasdasdasd" /> </Grid> </ScrollViewer

    62920发布于 2019-03-19
  • 来自专栏林德熙的博客

    uwp ScrollViewer content out of panel when set the long width

    I make a content with a long width in ScrollViewer and the content will out of the panel. I write a xaml with a ScrollViewer and a Grid. And than I set a content to ScrollViewer and the content is a long width Grid. <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <ScrollViewer asdasdasdasdasdasdasdasdasdaasdasdasdasdasdasdasdasdasdasdasdasdasdasdaasdasdasdasdasdasdasdasdasdasdasdasdasdasdaasdasdasdasdasdasdasdasdasdasdasdasdasd" /> </Grid> </ScrollViewer

    22020编辑于 2022-08-04
  • 来自专栏全栈程序员必看

    WPF中WrapPanel、StackPanel等添加滚动条ScrollViewer

    wpf中,在控件中直接设置ScrollViewer.HorizontalScrollBarVisibility和ScrollViewer.VerticalScrollBarVisibility属性,并不能显示滚动条 因为在wpf中,想要显示滚动条,需要把控件放在滚动条视图控件(ScrollViewer)中。 ScrollViewer属性说明: VerticalScrollBarVisibility="Auto" // 设置垂直滚动条自动显示,只要内部控件的实际高度大于ScrollViewer的高度,就会自动显示垂直滚动条 HorizontalScrollBarVisibility="Auto" // 设置水平滚动条自动显示,只要内部控件的实际宽度大于ScrollViewer的宽度,就会自动显示水平滚动条。 ,这个时候依赖于ScrollViewer控件的宽度。

    8K20编辑于 2022-09-15
  • 来自专栏林德熙的博客

    .net Framework 源代码 · ScrollViewer 使用原理其他源代码分析

    看完本文,可以学会如何写一个 ScrollViewer ,如何定义一个 IScrollInfo 或者给他滚动添加动画 使用 下面告诉大家如何简单使用 ScrollViewer ,一般在需要滚动的控件外面放一个 ScrollViewer 就可以实现滚动。 在 ScrollViewer 存在两个滚动方式,物理滚动 和 逻辑滚动,如果使用 物理滚动 那么滚动就是ScrollViewer做的,如何使用逻辑滚动,那么滚动就是控件自己做的。 那么我从 ScrollViewer 接收输入开始讲起 输入 如果大家使用 ScrollViewer 进行滚动,那么也许会遇到一个神奇的需求,如何在触摸下滚动。 是的,如果使用一个简单的 ScrollViewer 是无法使用触摸滚动 请看代码,写一个简单的 ScrollViewer 里面有一些矩形,可以看到这时可以进行鼠标滚动,但是触摸是无法滚动。

    2.3K10发布于 2018-09-18
  • 来自专栏dino.c的专栏

    使用附加属性处理 ScrollViewer 的滚动轮劫持问题

    之前写过一篇博客 关于 ScrollViewer 和滚动轮劫持(scroll-wheel-hijack),里面介绍了 ScrollViewer 的滚动轮劫持问题,以及如果解决。 当时的做法是继承 ScrollViewer 并重写 OnMouseWheel,全部代码如下: public class ExtendedScrollViewer : ScrollViewer { 参考 [UWP]附加属性1:概述 ScrollViewer.OnMouseWheel(MouseWheelEventArgs) Method (System.Windows.Controls) Microsoft Docs MouseWheelEventArgs.Delta Property (System.Windows.Input) Microsoft Docs ScrollViewer.ExtentHeight ) Microsoft Docs ScrollViewer.VerticalOffset Property (System.Windows.Controls) Microsoft Docs

    1.3K30发布于 2020-06-10
  • 来自专栏林德熙的博客

    win10 UWP 修改密码框文字水平

    }" HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}" IsTabStop ="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}" Margin="{TemplateBinding BorderThickness}" Padding }" VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}" ZoomMode="Disabled"/> 但是需要修改的只有 }" IsVerticalRailEnabled="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}" Margin="{TemplateBinding }" VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}" ZoomMode="Disabled"/> 修改他的

    67830发布于 2018-09-19
  • 来自专栏菩提树下的杨过

    Silverlight:ScorllViewer随Tab键自动跟随子控件的Focus滚动

    = null) { ScrollViewer scrollViewer = sender as ScrollViewer; scrollViewer.ScrollToVerticalOffset(GetVerticalOffset(element, scrollViewer)); } } private double GetVerticalOffset(FrameworkElement child, ScrollViewer scrollViewer) 0 : newOffset; // no use returning negative offset }   即:给ScrollViewer的GotFocus事件增加_ScrollViewer_GotFocus + (rectangle.Bottom - scrollViewer.ViewportHeight); scrollViewer.ScrollToVerticalOffset

    1.6K60发布于 2018-01-23
  • 来自专栏JusterZhu

    WPF中对滚动条进行平滑滚动

    一般我们会调用ScrollViewer的ScrollToVerticalOffset(垂直方向)函数和ScrollToHorizontalOffset(水平方向)函数来控制滚动条滚动到指定位置。 实现原理如下: 1、新建一个辅助类,里面定义一个附加属性 2、当这个附加属性的值更新时,我们去调用ScrollToVerticalOffset进行滚动 3、用ScrollViewer对这个附加属性进行动画 scrollViewer)      {          scrollViewer.ScrollToVerticalOffset((double)e.NewValue);      }  } 3、用 ScrollViewer对这个附加属性进行动画 DoubleAnimation animation = new DoubleAnimation {     From = scrollViewer.VerticalOffset (targetOffset); scrollViewer.BeginAnimation(ScrollViewerHelper.VerticalOffsetProperty, animation); 演示效果

    42000编辑于 2025-06-12
  • 来自专栏林德熙的博客

    win10 UWP 修改密码框文字水平

    }" HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}" IsTabStop ="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}" Margin="{TemplateBinding BorderThickness}" Padding }" VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}" ZoomMode="Disabled"/> 但是需要修改的只有 }" IsVerticalRailEnabled="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}" Margin="{TemplateBinding }" VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}" ZoomMode="Disabled"/> 修改他的

    49330编辑于 2022-08-04
  • 来自专栏dino.c的专栏

    [WPF自定义控件库] 关于ScrollViewr和滚动轮劫持(scroll-wheel-hijack)

    什么是滚动轮劫持 这篇文章介绍一个很简单的继承自ScrollViewer的控件: public class ExtendedScrollViewer : ScrollViewer { protected 有次我遇到个内嵌了很多ScrollViewer的长页面,使用起来真的很恼人,所以我使用ExtendedScrollViewer 解决了这个问题。 当然我们不满足于无脑禁用鼠标滚轮,我们应该更智能些,先让ScrollViewer滚到底,再交由外层的ScrollViewer滚下去。 ExtentHeight,获取ScrollViewer内容的实际高度。 ViewportHeight,获取当前可视区域的高度。 其他ScrollViewer方案 ScrollViewer还有很多中玩法,但我工作中不常用到所以就没做。

    1.8K30发布于 2019-08-30
  • 来自专栏dino.c的专栏

    [UWP 自定义控件]了解模板化控件(9):UI指南

    以下是ScrollViewer定义的全部附加属性: ScrollViewer.BringIntoViewOnFocusChange ScrollViewer.HorizontalScrollBarVisibility ScrollViewer.HorizontalScrollMode ScrollViewer.IsDeferredScrollingEnabled ScrollViewer.IsHorizontalRailEnabled ScrollViewer.IsHorizontalScrollChainingEnabled ScrollViewer.IsScrollInertiaEnabled ScrollViewer.IsVerticalRailEnabled ScrollViewer.IsVerticalScrollChainingEnabled ScrollViewer.IsZoomChainingEnabled ScrollViewer.IsZoomInertiaEnabled ScrollViewer.VerticalScrollBarVisibility ScrollViewer.VerticalScrollMode ScrollViewer.ZoomMode 3.

    1.6K20发布于 2019-01-18
  • 来自专栏哲学驱动设计

    精通 WPF UI Virtualization

    其实,在解决完后看来,问题主要出在 TreeGrid 的 Template 上,直接贴上来给大家看看: <ScrollViewer Style="{StaticResource GridTreeViewScroll }" VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}" Padding=" 所以,上面的 xaml 主要有两个错误: ScrollViewer.CanContentScroll 应该设置为 True。 应该把 VirtualizingStackPanel 作为 ScrollViewer 的内容元素(Content)。 ScrollViewer.VerticalScrollBarVisibility}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="

    3.2K90发布于 2018-01-29
  • 来自专栏林德熙的博客

    win10 uwp 如何判断一个控件在滚动条的里面是用户可见

    中复杂一些,我写过WPF 如何判断一个控件在滚动条的里面是用户可见但是在 UWP 中的小伙伴,也就是做 UWP 的大佬对 API 的设计会更加诡异 在 UWP 没有 ScrollChanged 事件只有ScrollViewer.ViewChanged 在 ScrollViewer.ViewChanged 只有在用户滚动或缩放完成之后才会触发,同时这个事件的参数ScrollViewerViewChangedEventArgs 只有一个表示现在是用户交互的过程还是结束的变量 , ScrollViewer.VerticalOffset), new Size(ScrollViewer.ViewportWidth, ScrollViewer.ViewportHeight)); 在 , ScrollViewer.VerticalOffset), new Size(ScrollViewer.ViewportWidth, ScrollViewer.ViewportHeight)); 事件同时使用,这样就可以拿到用户滚动和修改大小 uwp - XAML ScrollViewer’s child bring into view event - Stack Overflow

    1.4K20编辑于 2022-08-12
  • 来自专栏逸鹏说道

    [开源,学习,分享]UWP第三方简书客户端分享

    :ListView内部也是有一个ScrollViewer,当滑动的时候,会出现ListView内部的ScrollViewer被压缩,这样直接导致了下拉刷新的失败. 我这里思考了另一种方式,就是对ListView内部的ScrollViewer进行操作. ScrollViewer.HorizontalScrollBarVisibility}" IsHorizontalRailEnabled="{TemplateBinding ScrollViewer.IsHorizontalRailEnabled }" ZoomMode="{TemplateBinding ScrollViewer.ZoomMode}"> <ScrollViewer.RenderTransform> <CompositeTransform > 对内部的ScrollViewer的压缩进行操作,这样能够比较精准的获取用户的下拉.

    1.8K50发布于 2018-04-09
领券