Разработка WP7, изменение размера управления изображением из кода - PullRequest
1 голос
/ 19 октября 2011

Я занимаюсь разработкой приложения для просмотра изображений и хочу добавить в него новую функцию.До этого времени у меня был фиксированный размер элемента управления изображением в XAML 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),, но мне нужно увидеть некоторый код t, чтобы понять.

Пожалуйста, опубликуйте некоторый код или ссылку на учебник, чтобы не допустить «классического» диалога, когда один человек сейчас думает, как это сделать, и думает, что это просто, а другой человек теперь знает, как это работает.

Ответы [ 3 ]

4 голосов
/ 19 октября 2011

Вы можете напрямую изменить размер элемента управления изображения через его свойства Ширина и Высота.

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

Если вы хотите правильно вписать изображение в элемент управления изображением, вы можете использовать свойство Stretch

image2.Stretch = Stretch.UnifromToFill;

Для обработки изменения ориентации обработайте событие OrientationChanged вашей страницы и выполните манипуляции с изображением внутри нее

0 голосов
/ 21 октября 2011

Спасибо за ваши ответы, ребята, я сделал это следующим образом: я сделал <Image Height="Auto" Width="Auto" и Name="image1" Stretch="UniformToFill"/> Итак, Silverlight сделает всю работу за меня.

0 голосов
/ 20 октября 2011

Попробуйте это,

при изменении ориентации возникает следующее событие.

   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;

Я плохо говорю по-английски, если ошибки не возражают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...