水平拉伸WPF画布

res*_*ion 8 silverlight wpf canvas wpf-controls stretch

如何Canvas使用可变宽度完全水平拉伸?这是父母Canvas,所以没有父母,只有孩子.

XAML来源:它以混合http://resopollution.com/xaml.txt显示

Jam*_*add 15

使用a Grid作为UI中的顶级元素 - 它将拉伸以填充其容器.然后在里面放一个Canvas,它会按照你想要的方式行事.HorizontalAlignment="Stretch"Grid

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Canvas Background="Blue"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)

这对我有用.关键是您的顶级UI元素.虽然Grid默认情况下填充所有可用空间,但Canvases只占用内容需求的空间.

  • 首先,好球员!问题(在重新阅读你的问题后对我来说这是一个“duh”时刻)是根元素是画布。我采用了您发布的代码并将父画布背景设置为蓝色进行测试。然后,我将该画布包裹在父网格中,并删​​除了其宽度和高度属性。此时,我看到屏幕左上角有一个小型黑色媒体播放器,屏幕的其余部分充满了蓝色。画布不会自动拉伸以填充父级*除非*您将画布放置在网格中。默认情况下,它们只是其内部内容的大小。哈! (2认同)