Windows商店应用程序,当文本太多时水平滚动

时间:2014-07-31 16:19:48

标签: c# xaml windows-store-apps

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

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

1 个答案:

答案 0 :(得分:0)

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

说完了 - 为了动画它你TextBlock放在Canvas 中,设置Clip的{​​{1}}到定义剪辑区域的Canvas(并在大小更新时更新它),然后为RectangleGeometry的{​​{1}}属性设置动画。问题在于Canvas.X不是“独立”属性,所以你需要在动画上设置TextBlock并且仍然可以获得相当不稳定的动画。

更好的选择可能似乎是Canvas.X DoubleAnimation.EnableDependentAnimation="true"设置动画(例如,将其设置为RenderTransform并定位TextBlock动画中变换的属性),但是上次我检查过 - 这可以在已经剪裁的形式中为TranslateTransform设置动画,所以你仍然看不到它不适合屏幕的部分。你可以尝试一下。

X置于TextBlock 可能会更好,但它会遇到与TextBlock解决方案类似的问题,因为ScrollViewer甚至没有可动画的偏移属性。在Windows 8.1中,当您调用Canvas时,您会获得内置动画,但这可能会过快地制作动画。可以借助代理依赖项属性或其他每帧依赖动画,如WinRT XAML Toolkit中的ScrollToHorizontalOffsetWithAnimation() ScrollViewer扩展方法。