我该如何使一个具有可变宽度的
XAML源代码:它在Blend中显示 http://resopollution.com/xaml.txt
Canvas
水平拉伸至最大?这是父级Canvas
,所以它没有父级,只有子级。XAML源代码:它在Blend中显示 http://resopollution.com/xaml.txt
Canvas
水平拉伸至最大?这是父级Canvas
,所以它没有父级,只有子级。使用Grid
作为您的UI顶级元素 - 它将拉伸以填充其容器。然后在Grid
内放置一个Canvas
,并将其HorizontalAlignment="Stretch"
,它将按照您想要的方式运行。
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Canvas Background="Blue"/>
</Grid>
这个对我有用。关键是你的顶级UI元素。虽然Grid
默认填充所有可用空间,但Canvas
只占据其内容所需的空间。
canvas.HorizontalAlignment = HorizontalAlignment.Stretch
如果这行不起作用,那么你可以将 canvas 的 Width
和 Height
属性绑定到包含窗口的 ActualWidth
和 ActualHeight
属性。<Canvas HorizontalAlignment="Stretch">
在我的情况下完全有效。这使您免于将每个画布装箱到网格中(特别是如果您有很多画布)。 - Philip Daubmeier<DockPanel>
<Canvas />
</DockPanel>
Height
和Width
。如果没有这些属性,控件可能会在设计器中消失,但将画布插入到另一个控件时,它应该会自适应大小。