2015-06-01 2 views
0

Мне нужно создать зеркальное изображение изображения в окне телефона 8 с помощью C#. То, что я пробовал до сих пор, здесь. Мой код Xaml:Создайте инвертированное (зеркальное изображение) изображения в wp8

<Grid x:Name="LayoutRoot" Background="Transparent"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 

    <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28"> 
     <TextBlock Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/> 
     <TextBlock Text="page name" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/> 
    </StackPanel> 

    <!--ContentPanel - place additional content here--> 
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="*"/> 
      <RowDefinition Height="Auto"/> 
     </Grid.RowDefinitions> 
     <Button Name="submit" Grid.Row="0" Content="Select an Image" Tap="submit_Tap"/> 
     <Grid Grid.Row="1"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="*"/> 
       <ColumnDefinition Width="*"/> 
      </Grid.ColumnDefinitions> 
      <Image Name="mainImage" Stretch="Fill" Grid.Column="0" Height="500" Width="200"/> 
      <Image Name="InvertedImage" Stretch="Fill" Grid.Column="1" Height="500" Width="200"/> 
     </Grid> 
     <Button Name="mirrorImage" Grid.Row="2" Content="Create Mirror Image" Tap="mirrorImage_Tap"/> 
    </Grid> 

`

И мой C# код:

private void submit_Tap(object sender, System.Windows.Input.GestureEventArgs e) 
{ 
    PhotoChooserTask task = new PhotoChooserTask(); 
    task.Completed+=new EventHandler<PhotoResult>(task_Completed); 
    task.Show(); 
} 
BitmapImage mainImageSource = new BitmapImage(); 
private void task_Completed(object sender, PhotoResult e) 
{ 
    if (e.TaskResult == TaskResult.OK) 
    { 
     mainImageSource.SetSource(e.ChosenPhoto); 
     mainImage.Source = mainImageSource; 
    } 
} 

private void mirrorImage_Tap(object sender, System.Windows.Input.GestureEventArgs e) 
{ 
    InvertedImage.Source = mainImageSource; 
} 
} 

В mirrorImage_Tap. Я должен установить инвертированное изображение в источнике InvertedImage. Помощь приветствуется.

ответ

2

Попробуйте приведенный ниже код

<Grid Grid.Row="1"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*"/> 
      <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 
     <Image Name="mainImage" Stretch="Fill" Grid.Column="0" Height="500" Width="200"/> 
     <Image Name="InvertedImage" Stretch="Fill" Grid.Column="1" RenderTransformOrigin="0.5,0.5"Height="500" Width="200"> 
     <Image.RenderTransform> 
       <CompositeTransform ScaleX="-1"/> 
      </Image.RenderTransform> 
     </Image> 
    </Grid> 

Я думаю <CompositeTransform ScaleX="-1"/> на изображение будет делать работу за вас.