как реализовать выбрать функцию фото в Windows Phone

1

Я работаю над приложением, для этого требуется выбрать фоновое изображение из галереи. Для этого я реализую те же функции, что и функция " Choose Photo в Windows phone 8.1 (для установки фонового изображения)

Я пробовал это:

XAML:

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

    <Grid Grid.Row="0" Name="contentPanel">
        <ScrollViewer Name="scrl"  HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" Opacity="0.3">

        </ScrollViewer>
        <ScrollViewer Name="scrlView" Height="500" Width="300" BorderBrush="Red" BorderThickness="1" Background="Transparent">

        </ScrollViewer>
        <Image Name="mtpImg" Stretch="Fill" />
    </Grid>
</Grid>

<phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar Mode="Minimized">
        <shell:ApplicationBarIconButton IconUri="Assets\ApplicationIcon.png" Click="gallery_click" Text="gallery"/>
    </shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

С#:

    private void gallery_click(object sender, EventArgs e)
    {
        PhotoChooserTask chooser = new PhotoChooserTask();
        chooser.Completed += gallery_Completed;
        chooser.Show();
    }

    private void gallery_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            Image img = new Image();
            BitmapImage tmpBitmap = new BitmapImage();
            tmpBitmap.SetSource(e.ChosenPhoto);
            img.Source = tmpBitmap;
            scrl.Content = img;
        }
    }

Проблема: как установить opacity=1 для изображения, отображаемого внутри scrlView ScrollViewer?

Теги:
xaml
scrollviewer
windows-phone-8.1
windows-phone-8

1 ответ

1

попробуйте это для установки непрозрачности как 1:

private void gallery_Completed(object sender, PhotoResult e)
{
    if (e.TaskResult == TaskResult.OK)
    {
        Image img = new Image();
        BitmapImage tmpBitmap = new BitmapImage();
        tmpBitmap.SetSource(e.ChosenPhoto);
        img.Source = tmpBitmap;
        scrl.Content = img;
        scrl.Opacity = 1.0;
    }
}

Если вы хотите установить изображение в режиме управления изображением с помощью границы, вы можете попробовать следующее:

XAML:

<Grid Grid.Row="0" Name="contentPanel">
    <Border BorderBrush="Red" Height="500" Width="300" BorderThickness="1">
        <Image Name="mtpImg" Stretch="Fill" Height="500" Width="300"/>
    </Border>
</Grid>

CS:

PhotoChooserTask chooser;
public TaskPage()
{
    InitializeComponent();
    chooser = new PhotoChooserTask();
    chooser.Completed += gallery_Completed;
}

private void gallery_click(object sender, EventArgs e)
{
    chooser.Show();
}

private void gallery_Completed(object sender, PhotoResult e)
{
    if (e.TaskResult == TaskResult.OK)
    {
        BitmapImage tmpBitmap = new BitmapImage();
        tmpBitmap.SetSource(e.ChosenPhoto);
        mtpImg.Source = tmpBitmap;
    }
}
  • 0
    Этот способ устанавливает непрозрачность = 1 для всего изображения. Что мне нужно, это непрозрачность = 1 для части изображения, видимой внутри кадра.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню