我正在为Windows商店制作一个应用程序(xaml / c#),在这个应用程序中我创建了一个文件属性列表。一个属性是文件路径,这总是太长。我的解决方案是在选择此文本块时使此侧滚动。 选中该文本时将开始滚动以使所有信息可读。 (自动收报机栏)
我找不到一个属性来实现这一点,我发现很难为此创建一个自定义函数。你能帮助我吗?
答案 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
扩展方法。