wpf - 拉伸(stretch)项目以填充 Canvas

标签 wpf canvas controls components

我有一个 Dockpanel,其中有 Canvas 内的项目。我放置在 Canvas 内的 Dockpanel 和任何其他项目(网格等)仅占用其所需的最小空间。如何拉伸(stretch)这些项目以填充整个 Canvas ?

    <Canvas x:Name="InfoCanvas" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="72,53,0,0">
        <DockPanel VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="0,0,0,0" x:Name="ReferenceInfo" Canvas.Left="0" Canvas.Top="0">
            <TextBox x:Name="ReferenceAuthor" GotFocus="FieldEnter" LostFocus="FieldLeave" FontSize="16" FontFamily="Segoe UI Light" Text="Author" Foreground="Gray" Background="Transparent" DockPanel.Dock="Top" VerticalAlignment="Top" HorizontalAlignment="Stretch" BorderThickness="0" Margin="0,2,0,2"/>
            <TextBox x:Name="ReferenceTitle" GotFocus="FieldEnter" LostFocus="FieldLeave" FontSize="16" FontFamily="Segoe UI Light" Text="Title" Foreground="Gray" Background="Transparent" DockPanel.Dock="Top" VerticalAlignment="Top" HorizontalAlignment="Stretch" BorderThickness="0" Margin="0,2,0,2"/>
            <TextBox x:Name="ReferenceDate" GotFocus="FieldEnter" LostFocus="FieldLeave" FontSize="16" FontFamily="Segoe UI Light" Text="Date" Foreground="Gray" Background="Transparent" DockPanel.Dock="Top" VerticalAlignment="Top" HorizontalAlignment="Stretch" BorderThickness="0" Margin="0,2,0,2"/>
        </DockPanel>  
    </Canvas>

谢谢!

最佳答案

Canvas 面板并不真正支持这一点。

这是非常基本的 - 它只是允许您使用顶部、底部、左侧和右侧来绝对定位子项,并且它始终为他们提供所需的空间。

因此,通常您会使用只有 1 列和 1 行的 Grid

但是,您可以将 DockPanel 的宽度和高度绑定(bind)到 Canvas 的宽度和高度。这样,DockPanel 将始终填充 Canvas

<DockPanel VerticalAlignment="Stretch" HorizontalAlignment="Stretch" 
            Margin="0,0,0,0" x:Name="ReferenceInfo" Canvas.Left="0" Canvas.Top="0"
            Width="{Binding ActualWidth, ElementName=InfoCanvas}"
            Height="{Binding ActualHeight, ElementName=InfoCanvas}">

关于wpf - 拉伸(stretch)项目以填充 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13621041/

相关文章:

wpf - 如何在 WPF 中的 TextBlock 的句子中间插入绑定(bind)?

javascript - 如何在 Google map V3 中定位自定义 controlUI?

c++ - ListView 中嵌入的进度条

javascript - 上传图像字节而不是 Base64 表示

wpf - Silverlight:层次结构 TreeView 的自定义模板

c# - WPF:两个控件绑定(bind)到一个源,如何过滤绑定(bind)?

wpf - Sq-lite查询不会从数据库中获取所有行

c# - 如何使控件根据 WPF 中的背景图像移动/调整大小

javascript - 正确缩放 Javascript Canvas 游戏

javascript - 如何在 Canvas 动画下在 Canvas 上播放视频?