【问题标题】:How do I stretch the control to fill Canvas in Silverlight?如何在 Silverlight 中拉伸控件以填充 Canvas?
【发布时间】:2010-12-22 21:20:50
【问题描述】:

我需要做的是拉伸控件以填充整个 Canvas。 我想我必须使用 Canvas (我不希望我的控件被剪裁 在容器外渲染时 - 据我所知所有其他容器 执行裁剪 - 网格、边框... - 也许还有其他解决方案?)

如果我将控件放在 Canvas 中,它可以正常工作(我的意思是它没有被剪裁)。 但是,它不会填满整个 Canvas。 我试图绑定到 Canvas 的宽度和高度 - 没有结果。

你有什么想法或线索吗?

提前致谢!

【问题讨论】:

  • 我刚刚在 Kaxaml 中进行了测试,Grid 默认情况下不会对其子项进行剪辑(尽管您可以通过将 ClipToBounds 设置为 true 来使其剪辑)。
  • @Joe,我试图使用 Grid 并且总是得到一个剪辑控件。你能为你的例子提供一个代码sn-p吗?
  • 这是我尝试过的 XAML:<Grid Width="80" Height="50" Background="Red"><Button Margin="-10 10" Content="Text"/></Grid> 按钮延伸到网格之外,并且不会被剪裁——所以您对“所有其他容器执行 [ing] 剪裁”的担忧不会似乎适用,除非有您未包含的详细信息。

标签: c# wpf silverlight canvas stretch


【解决方案1】:

控件可以通过具有负边距来转义容器,例如BorderGrid。因此,也许您应该返回使用 Grid 并使用列和行定义以及在需要它们的地方使用负边距来调整放置。

【讨论】:

  • 我放置了一个指定高度的控件,高度可以改变(控件展开),但我仍然想显示整个控件(原控件的区域+展开区域)。
  • @Jamie:您需要做出选择,您是想手动放置控件并调整其大小,还是需要 Grid 系统的帮助?如果您希望内容扩大其大小,为什么“网格”具有固定大小?为什么不让网格成为其内容的总大小?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-19
  • 1970-01-01
  • 1970-01-01
  • 2011-10-27
  • 1970-01-01
相关资源
最近更新 更多