当前位置:科技动态 > WPF 超长文本的来回滚动

WPF 超长文本的来回滚动

  • 发布:2023-09-19 15:14

-->

原文:WPF 超长文本的来回滚动

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://www.sychzs.cn/Vblegend_2013/article/details/83621303

当较小的地方显示超长的文本时  实现左右来回滚动

 

引入命名空间

xmlns:Utility="clr-namespace:Test.Wpf.Utility"

 实现

IsHitTestVisible="False"
Background="#05FFFFFF"
Margin="2,10,2,0"
VerticalScrollBarVisibility="Hidden"
HorizontalScrollBarVisibility="Hidden">

ScrollViewerBehavior类

using System.Windows;
using System.Windows.Controls; namespace Test.Wpf.Utility
{
public static class ScrollViewerBehavior
{
public static readonly DependencyProperty HorizontalOffsetProperty = DependencyProperty.RegisterAttached("HorizontalOffset", typeof(double), typeof(ScrollViewerBehavior), new UIPropertyMetadata(0.0, OnHorizontalOffsetChanged));
public static void SetHorizontalOffset(FrameworkElement target, double value)
{
target.SetValue(HorizontalOffsetProperty, value);
}
public static double GetHorizontalOffset(FrameworkElement target)
{
return (double)target.GetValue(HorizontalOffsetProperty);
}
private static void OnHorizontalOffsetChanged(DependencyObject target, DependencyPropertyChangedEventArgs e)
{
var view = target as ScrollViewer;
if (view != null)
{
view.ScrollToHorizontalOffset((double)e.NewValue);
}
} public static readonly DependencyProperty VerticalOffsetProperty = DependencyProperty.RegisterAttached("VerticalOffset", typeof(double), typeof(ScrollViewerBehavior), new UIPropertyMetadata(0.0, OnVerticalOffsetChanged));
public static void SetVerticalOffset(FrameworkElement target, double value)
{
target.SetValue(VerticalOffsetProperty, value);
}
public static double GetVerticalOffset(FrameworkElement target)
{
return (double)target.GetValue(VerticalOffsetProperty);
}
private static void OnVerticalOffsetChanged(DependencyObject target, DependencyPropertyChangedEventArgs e)
{
var view = target as ScrollViewer;
if (view != null)
{
view.ScrollToVerticalOffset((double)e.NewValue);
}
}
}
}

 

相关文章