【问题标题】:Windows store app, horizontal scrolling when too much textWindows 商店应用程序,文本过多时水平滚动
【发布时间】:2014-08-01 01:47:45
【问题描述】:

我正在为 Windows 商店 (xaml/c#) 制作一个应用程序,在这个应用程序中我创建了一个文件属性列表。一个属性是文件路径,这总是太长。我的解决方案是在选择此文本块时进行此侧滚动。 选中后,文本将开始滚动,以使所有信息都可读。 (滚动条)

我找不到实现这一点的属性,而且我发现很难为此创建自定义函数。你能帮助我吗?

【问题讨论】:

    标签: c# xaml windows-store-apps


    【解决方案1】:

    我会重新考虑这个想法。我有很多次这个想法,但总是被设计师拒绝。我认为动画文本可能比剪辑文本更烦人。更好的方法可能是将其包裹在适当的位置,或者如果您位于项目高度有限的列表中 - 仅在点击后显示全文 - 使用一些弹出窗口或在点击项目的详细信息视图中。

    话虽如此 - 要对其进行动画处理,您可以TextBlock 放入Canvas,将CanvasClip 设置为定义您的RectangleGeometry剪辑区域(并在大小更新时对其进行更新),然后为TextBlockCanvas.X 属性设置动画。问题在于 Canvas.X 不是“独立”属性,因此您需要在动画上设置 DoubleAnimation.EnableDependentAnimation="true" 并且仍然可以获得相当不稳定的动画。

    更好的选择似乎是TextBlockRenderTransform 设置动画(例如,将其设置为TranslateTransform 并定位动画中变换的X 属性),但上次我检查过 - 这可能会以已剪辑的形式为 TextBlock 设置动画,因此您仍然看不到它不适合屏幕的部分。不过你可以试试。

    TextBlock 放入ScrollViewer 可能效果更好,但它会遇到与Canvas 解决方案类似的问题,因为ScrollViewer 甚至没有动画偏移财产。在 Windows 8.1 中,当您调用 ScrollViewer.ChangeView() 时,您会获得内置动画,但这可能会动画太快。在 WinRT XAML 工具包中的 ScrollToHorizontalOffsetWithAnimation() ScrollViewer 扩展方法中,可以借助代理依赖属性或其他每帧依赖动画。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多