更改 ContentControl 中内容的可见矩形

发布于 2024-10-19 08:14:12 字数 407 浏览 1 评论 0原文

在 WPF 中,我的 ContentControl 大小有限(假设为 100x30)。此 ContentControlContent 是一个大小为 200x30 的 Label,因此整个 Label中不可见>内容控制

如何以编程方式设置 Label 的哪个区域在 ContentControl 中可见?内容的可见区域(矩形)可能会随着时间而变化。我可以在不使用 ScrollViewer 的情况下执行此操作(仅用于设置可见剪辑)吗?

编辑:那么,我什至无法使用 ScrollViewer 来做到这一点,因此任何有关这方面的建议也会受到重视

In WPF I have ContentControl that has limited size (lets say 100x30). A Content of this ContentControl is a Label of size 200x30 so the whole Label cannot be visible within the ContentControl.

How can I programatically set which area of the Label is visible in ContentControl ? The visible area (rectangle) of the content may change over time. Can I do this without using ScrollViewer (just to set visible clip) ?

EDIT: Well then, I am not even able to do it using ScrollViewer so any advice on that would be appriciated as well

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

玩心态 2024-10-26 08:14:12

您可以将标签放置在画布上并使用 Canvas.Left 属性移动它。

使用绑定到滑块 Value 属性来调整标签位置的小示例。

<ContentControl Width="100" Height="30">
  <Canvas ClipToBounds="True">
    <Label Canvas.Left="{Binding ElementName=mySlider, Path=Value}" Width="200" Height="30">Here is some very long sample text </Label>
  </Canvas>
</ContentControl>
<Slider Name="mySlider" Minimum="-200" Maximum="100" />

You can place your label on canvas and move it using Canvas.Left property.

Small example where label's position is adjusted using binding to a slider Value property.

<ContentControl Width="100" Height="30">
  <Canvas ClipToBounds="True">
    <Label Canvas.Left="{Binding ElementName=mySlider, Path=Value}" Width="200" Height="30">Here is some very long sample text </Label>
  </Canvas>
</ContentControl>
<Slider Name="mySlider" Minimum="-200" Maximum="100" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文