WP7开发,从代码中改变Image控件的大小

时间:2011-10-19 08:49:04

标签: c# silverlight image windows-phone-7

我正在开发图片查看器应用程序,我想为它添加新功能。 直到这次,我在XAML中修改了Image控件的大小 Height="422" Width="444",但我想在页面上使用所有可能的空格,它是Width="447" Height="585"

<StackPanel Height="422" Width="444">
                            <Image Height="414" HorizontalAlignment="Center" Margin="9,6,0,0" Name="image2" Stretch="Uniform" VerticalAlignment="Center" Width="441" />
                        </StackPanel>

背后的代码

var stream = new IsolatedStorageFileStream(path, FileMode.Open, _file);
            var image = new BitmapImage();
            image.SetSource(stream);
            stream.Close();
            if (image1 != null) image1.Source = image;

所以,我的问题是:

  1. 如何从后面的代码设置图像控件的大小,这样图片将适合Width="447" Height="585"大小,我有纵向和横向图片?
  2. 我需要支持纵向和横向,所以当方向发生变化时,我希望图片适合新尺寸Width="585" Height="447",我该如何管理呢? (我想如果我能找到第一个解决方案,而不仅仅是认为我需要的是正确的事件来处理这个问题)与此类似(http://stackoverflow.com/questions/6857142/handling-size-of-image-after- orientation-change-wp7),但我需要看一些代码才能理解。
  3. 请发布一些代码或链接到教程,以防止“经典”对话,其中一个人现在如何做,并认为它很简单,其他人现在知道它是如何工作的。

3 个答案:

答案 0 :(得分:4)

您可以通过它的宽度和高度属性直接更改图像控件的大小。

image2.Width = "447";
image2.Height = 585;

如果您想要在图像控件中正确放入图片,则可以使用属性Stretch

image2.Stretch = Stretch.UnifromToFill;

处理方向更改处理页面的OrientationChanged事件并在其中进行图像处理

答案 1 :(得分:0)

试试这个,

更改方向时,会显示以下事件。

   private void PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
    {
        if (this.Orientation == PageOrientation.Portrait)
        {
            optionsup.VerticalOffset = 447;
            optionsup.HorizontalOffset = 585;
        }
        else
        {
            optionsup.VerticalOffset = 585;
            optionsup.HorizontalOffset = 447;
        }
    }

最初的方向是PortraitUp然后

            optionsup.VerticalOffset = 447;
            optionsup.HorizontalOffset = 585;

我的英语很差,如果有任何错误,请不要介意。

答案 2 :(得分:0)

感谢您的回答,我这样做了:我已经<Image Height="Auto" Width="Auto"Name="image1" Stretch="UniformToFill"/>因此,Silverlight将为我完成所有工作。