将画布大小调整为窗口/用户控件大小
Posted
技术标签:
【中文标题】将画布大小调整为窗口/用户控件大小【英文标题】:Resize canvas to window / user control size 【发布时间】:2011-01-05 16:48:17 【问题描述】:您好,我将 SVG 图像转换为 XAML/画布。我想将此画布设置为窗口/用户控件背景。
类似这样的:
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Name="svg2383" Width="800" Height="600">
<---->
</Canvas>
</Window>
我的问题是画布太大,我想在窗口高度/宽度上自动调整大小/拉伸画布。
画布上的图像很复杂..http://kde-look.org/content/show.php/something_wall?content=115863
所以设置宽度和高度不是解决方案,因为这个画布包含其他画布。
【问题讨论】:
【参考方案1】:去掉指定的宽高怎么样
<canvas Name="svg2383">
<---->
</canvas>
编辑:另一种方法是使用如下绑定:
<Window x:Name="MainWin">
<Canvas Width="Binding ElementName=MainWin, Path=ActualWidth"
Height="Binding ElementName=MainWin, Path=ActualHeight">
<--->
</Canvas>
</Window>
【讨论】:
所以设置宽度和高度不是解决方案,因为这个画布包含其他画布。所以画布有其他画布,他有其他画布,我必须设置许多属性高度和宽度......这不是解决方案。【参考方案2】:您可以将画布放在Viewbox 中。这将允许您拉伸它以填充窗口,同时以恒定大小设计它。
【讨论】:
好的,但我想将画布作为背景,因为我想在这个背景上放置一些控件。如果我使用视图框,我必须在视图框中放置画布,在画布中我必须将控件作为网格与其他控件一起放置。我觉得不好。 @jminarik:制作一个单独的画布 - 将它用于您的其他控件,并将 Viewbox 和它放在一个网格中。应该可以正常工作。以上是关于将画布大小调整为窗口/用户控件大小的主要内容,如果未能解决你的问题,请参考以下文章
C# WinForm的SplitContainer控件固定Panel大小