Итак, у меня есть проблема с кодированием, с которой мне нужна помощь, и, проще говоря, я понятия не имею, что я делаю с этим. К вашему сведению, я не использую инструментарий с прослушивателями жестов.
У меня есть страница панорамы с 3 элементами панорамы: BigImageCenter, BigImageLeft, BigImageRight.
В моем приложении есть куча изображений, которые будут загружены вместе с приложением. Цель этой страницы панорамы состоит в том, чтобы в нижней части страницы было установлено средство просмотра прокрутки для отображения всего списка изображений, поставляемых с приложением, в виде маленьких миниатюр, а в верхней части страницы — элементы панорамы, где, если вы щелкайте влево или вправо, изображения методично продвигаются (или возвращаются, если щелкнуть влево) вниз по списку.
Кроме того, если вы нажмете на одну из миниатюр в нижнем окне прокрутки, текущее изображение панорамы будет заменено этой миниатюрой. Если вы щелкнете влево или вправо на странице панорамы, вы получите это миниатюрное изображение -1 или +1 в массиве.
Первое изображение, которое вы видите на странице, — это BigImageCenter.
Мне не нужно использовать 3 элемента панорамы, и мне может сойти с рук только 1. Однако при тестировании только с 1, после того, как я изменю изображение, щелкнув миниатюру и проведя панораму влево или вправо, следующий изображение, которое должно быть загружено на экран, всегда является одним и тем же изображением до того, как оно было изменено (имеет смысл, поскольку я не закодировал какой-либо массив для динамического изменения следующего изображения и т. д.).
Однако я понятия не имею, как сделать что-либо из следующего:
1) Создайте массив, в котором для первого изображения в элементе панорамы установлено значение X. 2) Сообщите, щелкнул ли пользователь влево или вправо до -1 или +1 в массиве 3) Установите уменьшенное изображение для замены текущего изображения панорамы, когда коснулся, а затем переместите массив в эту позицию эскиза изображения.
Вот XAML как элемента управления панорамой, так и средства просмотра миниатюр:
<Grid x:Name="ControlPanel" Grid.Row="1" Margin="-8,-22,-49,90">
<controls:Panorama Name="Image_Panorama" Height="auto" Width="auto">
<!--Panorama item one-->
<controls:PanoramaItem>
<Rectangle Height="auto" Width="auto" x:Name="BigImageCenter">
<Rectangle.Fill>
<ImageBrush ImageSource="image030.jpg" />
</Rectangle.Fill>
</Rectangle>
</controls:PanoramaItem>
<controls:PanoramaItem>
<Rectangle Height="auto" Width="auto" x:Name="BigImageLeft">
<Rectangle.Fill>
<ImageBrush ImageSource="pics/image002.jpg" />
</Rectangle.Fill>
</Rectangle>
</controls:PanoramaItem>
<controls:PanoramaItem>
<Rectangle Height="auto" Width="auto" x:Name="BigImageRight">
<Rectangle.Fill>
<ImageBrush ImageSource="pics/image003.jpg" />
</Rectangle.Fill>
</Rectangle>
</controls:PanoramaItem>
</controls:Panorama>
</Grid>
<Grid x:Name="MiniPicturePanel" Grid.Row="1" Margin="0,390,0,0">
<ScrollViewer x:Name="svSmall" Grid.Row="1" HorizontalContentAlignment="Center">
<StackPanel x:Name="smallImages" Orientation="Horizontal" VerticalAlignment="Bottom" Margin="330,0,0,0">
<Rectangle Height="70" Width="110" Margin="0,0,30,0" StrokeThickness="3" MouseLeftButtonUp="smallImage_Tap" Stroke="#FF004080" x:Name="Bat1">
<Rectangle.Fill>
<ImageBrush ImageSource="image030.jpg" />
</Rectangle.Fill>
</Rectangle>
<Rectangle Height="70" Width="110" Margin="0,0,30,0" StrokeThickness="3" MouseLeftButtonUp="smallImage_Tap" Stroke="#FF004080" x:Name="Bat2">
<Rectangle.Fill>
<ImageBrush ImageSource="pics\image002.jpg" />
</Rectangle.Fill>
</Rectangle>
.... и так далее
Сейчас у меня кое-что сделано, но не так, как хотелось бы:
MouseLeftButtonUp="smallImage_Tap" — это функция, которая изменит элемент панорамы для "BigImageCenter" на текущий image.fill прямоугольника. Я просто не могу закодировать его, чтобы изменить текущий элемент сводки в представлении. Мне нужна помощь с этим.
private void smallImage_Tap(object sender, RoutedEventArgs e) {
BigImageCenter.Fill = (sender as Rectangle).Fill;
Если вам интересно, почему я использую прямоугольники, для меня это был самый простой способ изменить изображение с кодом позади, нажав на меньшую миниатюру.
И это в значительной степени мой программный код. Я буквально делаю это динамическое кодирование с нуля, и мне нужна помощь в достижении этой мечты.
PS: мне также нужно знать номер массива, привязанный к изображению, чтобы я мог разрешить пользователю добавить его в «Избранное» и поместить на другую страницу.