WPF,请解释下这个Viewbox的布局
<Window x:Class="WPF2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="400" Width="578">
<Grid>
<Button Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75"/>
</Grid>
</Window>
如果在Grid外面套一层Viewbox,结果如下:
<Window x:Class="WPF2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="400" Width="578">
<Viewbox>
<Grid>
<Button Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75"/>
</Grid>
</Viewbox>
</Window>
问题:
为什么使用Viewbox之后,Button会变那么大呢?Viewbox的Stretch属性默认为Uniform,那就说明Grid是按比例适合Viewbox的尺寸吧,那Button应该还是与没有使用Viewbox时一样大的吧。
请解释下
------解决方案--------------------给你的Grid加上Width="2" Height="1",不然没大小,放大了之后大小也是0.
不知道你为什么非要一口咬定Viewbox都是铺满窗口的 ,我都说了,Viewbox的大小和位置是多个属性和子元素共同确定的。
------解决方案--------------------1.ViewBox首先是内部元素等比例缩放。
2.你直接把ViewBox放在Window里面自动拉伸填充
显示结果就是你内部的按钮按照原始比例最大尺度放大,填充。。就成这个样子了啊。。 - -~~~
------解决方案--------------------
不是。。。。ViewBox继承自Decorator。。。grid继承自panel。。。。。有区别啊。。。
还有grid在没有给它的width和height赋值和没有设置拉伸属性或者拉伸属性无效的时候,它的大小是它内部元素button决定的。。 - -然后放入viewbox放大。。就成那个样子了。。