none
About ViewBox RRS feed

  • 问题

  • Hello,everyone.

    I want to make a picture as the background of the program.MSDN said " The Viewbox control is used to stretch or scale a child element." So I want to use ViewBox.

    <Window x:Class="UsingDecorators.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">
        <Grid Margin="0">
            <Viewbox Margin="0" Height="350" Width="525" Stretch="Uniform" StretchDirection="Both">
                <Image Margin="0" Height="350" Name="image1" Stretch="Fill" Width="525" Source="/UsingDecorators;component/Images/17.jpg" />        
            </Viewbox>
        </Grid>    
    </Window>
    
    

    But when i resized the program,the background picture didn't change its size.So I am confused with that.

    Thank you for your attention.

    2012年1月18日 12:20

答案

  • Image 本身就是自动缩放的根本用不着 Viewbox,而且你把高宽都固定了,当然就不会自动伸缩了。

     

    <Window x:Class="UsingDecorators.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">
        <Grid>
            <Image Name="image1" Stretch="Fill" Source="/UsingDecorators;component/Images/17.jpg" />        
        </Grid>    
    </Window>
    

     

    2012年1月18日 12:59

全部回复

  • Image 本身就是自动缩放的根本用不着 Viewbox,而且你把高宽都固定了,当然就不会自动伸缩了。

     

    <Window x:Class="UsingDecorators.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">
        <Grid>
            <Image Name="image1" Stretch="Fill" Source="/UsingDecorators;component/Images/17.jpg" />        
        </Grid>    
    </Window>
    

     

    2012年1月18日 12:59
  • 你好,我把宽和高设为auto,可以实现图片的缩放了,但还不能动态的让图片填充到整个程序背景里,请问这个功能该如何实现?
    <Window x:Class="UsingDecorators.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="auto" Width="auto">
        <Grid Margin="0">
            <Viewbox Margin="0" Height="auto" Width="auto" Stretch="Uniform" StretchDirection="Both">
                <Image Margin="0" Height="auto" Name="image1" Stretch="Fill" Width="auto" Source="/UsingDecorators;component/Images/17.jpg" />        
            </Viewbox>
        </Grid>    
    </Window>
    

    2012年1月19日 5:51
  • 不是说了吗,不要用 Viewbox,Image 本身就是自动缩放的。即使用 Viewbox,那么属性 Stretch 也应该是 Fill。

    http://msdn.microsoft.com/zh-cn/library/system.windows.media.stretch.aspx

    2012年1月19日 6:24
  • 谢谢。把ViewBox去掉就好使了。
    2012年1月19日 7:19