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