Skip to content

Instantly share code, notes, and snippets.

@muhaym
Created May 24, 2015 00:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save muhaym/4798768d73ed34e39d38 to your computer and use it in GitHub Desktop.
Save muhaym/4798768d73ed34e39d38 to your computer and use it in GitHub Desktop.
<phone:PhoneApplicationPage
x:Class="AdkaarWindowsPhone.ShareImage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d"
xmlns:local="clr-namespace:AdkaarWindowsPhone"
shell:SystemTray.IsVisible="True">
<phone:PhoneApplicationPage.Resources>
<local:NullToVisibilityConverter x:Name="StringToVisibiltyConverter" />
<Style TargetType="TextBlock">
<Setter Property="Margin" Value="10,0,10,0"></Setter>
<Setter Property="VerticalAlignment" Value="Stretch"></Setter>
</Style>
<Style TargetType="TextBlock" x:Key="DuaText">
<Setter Property="Foreground" Value="Black"></Setter>
<Setter Property="VerticalAlignment" Value="Stretch"></Setter>
<Setter Property="Margin" Value="10,10,10,10"></Setter>
<Setter Property="TextWrapping" Value="Wrap" ></Setter>
</Style>
<Style TargetType="TextBlock" x:Key="DuaTextArabic">
<Setter Property="Foreground" Value="Black"></Setter>
<Setter Property="VerticalAlignment" Value="Stretch"></Setter>
<Setter Property="Margin" Value="10,5,10,5"></Setter>
<Setter Property="TextWrapping" Value="Wrap" ></Setter>
<Setter Property="TextAlignment" Value="Right"></Setter>
</Style>
<Style TargetType="TextBlock" x:Key="DuaTextMalayalam">
<Setter Property="Foreground" Value="Black"></Setter>
<Setter Property="VerticalAlignment" Value="Stretch"></Setter>
<Setter Property="Margin" Value="10,10,10,5"></Setter>
<Setter Property="TextWrapping" Value="Wrap" ></Setter>
<Setter Property="TextAlignment" Value="Left"></Setter>
</Style>
<Style TargetType="Grid" x:Key="DuaArabic">
<Setter Property="Margin" Value="15,20,15,0"></Setter>
<Setter Property="Background" Value="DarkGray"></Setter>
</Style>
<Style TargetType="Grid" x:Key="DuaMalayalam">
<Setter Property="Margin" Value="15,0,15,0"></Setter>
<Setter Property="Background" Value="LightGray"></Setter>
</Style>
</phone:PhoneApplicationPage.Resources>
<Grid x:Name="SharePanel" Background="AntiqueWhite">
<ScrollViewer>
<StackPanel Orientation="Vertical">
<TextBlock Style="{StaticResource DuaText}" Text="{Binding duapretext}" Visibility="{Binding duapretext,
Converter={StaticResource StringToVisibiltyConverter}}"/>
<Grid Style="{StaticResource DuaArabic}" Visibility="{Binding arabicDescription,
Converter={StaticResource StringToVisibiltyConverter}}" >
<TextBlock Style="{StaticResource DuaTextArabic}" Text="{Binding arabicDescription}"/>
</Grid>
<Grid Style="{StaticResource DuaMalayalam}" Visibility="{Binding transliteration,
Converter={StaticResource StringToVisibiltyConverter}}" >
<TextBlock Style="{StaticResource DuaTextMalayalam}" Text="{Binding transliteration}"/>
</Grid>
<TextBlock Style="{StaticResource DuaText}" Text= "{Binding malayalamDescription}" Visibility="{Binding malayalamDescription,
Converter={StaticResource StringToVisibiltyConverter}}"/>
<Grid Style="{StaticResource DuaArabic}" Visibility="{Binding arabicDescription2,
Converter={StaticResource StringToVisibiltyConverter}}">
<TextBlock Style="{StaticResource DuaTextArabic}" Text="{Binding arabicDescription2}"/>
</Grid>
<Grid Style="{StaticResource DuaMalayalam}" Visibility="{Binding transliteration2,
Converter={StaticResource StringToVisibiltyConverter}}">
<TextBlock Style="{StaticResource DuaTextMalayalam}" Text="{Binding transliteration2}"/>
</Grid>
<TextBlock Style="{StaticResource DuaText}" Text= "{Binding malayalamDescription2}" Visibility="{Binding malayalamDescription2,
Converter={StaticResource StringToVisibiltyConverter}}"/>
<Grid Style="{StaticResource DuaArabic}" Visibility="{Binding arabicDescription3,
Converter={StaticResource StringToVisibiltyConverter}}">
<TextBlock Style="{StaticResource DuaTextArabic}" Text="{Binding arabicDescription3}"/>
</Grid>
<Grid Style="{StaticResource DuaMalayalam}" Visibility="{Binding transliteration3,
Converter={StaticResource StringToVisibiltyConverter}}" >
<TextBlock Style="{StaticResource DuaTextMalayalam}" Text="{Binding transliteration3}"/>
</Grid>
<TextBlock Style="{StaticResource DuaText}" Text= "{Binding malayalamDescription3}" Visibility="{Binding malayalamDescription3,
Converter={StaticResource StringToVisibiltyConverter}}"/>
<TextBlock Style="{StaticResource DuaText}" Text="{Binding duaposttext}" Visibility="{Binding duaposttext,
Converter={StaticResource StringToVisibiltyConverter}}"/>
</StackPanel>
</ScrollViewer>
</Grid>
<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" Mode="Minimized">
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="Share dua as Image..." Click="ApplicationBarMenuItem_Click"/>
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>
</phone:PhoneApplicationPage>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using AdkaarPCL;
using System.Windows.Media.Imaging;
using System.IO;
using Windows.Storage;
using Microsoft.Phone.Tasks;
using System.Windows.Media;
namespace AdkaarWindowsPhone
{
public partial class ShareImage : PhoneApplicationPage
{
public ShareImage()
{
InitializeComponent();
}
Category dua = new Category();
protected async override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
string id = "";
string index = "";
if (NavigationContext.QueryString.TryGetValue("id", out id))
{
dua = await Helpers.DataHelper.LoadItem(id);
}
if (NavigationContext.QueryString.TryGetValue("index", out index))
{
SharePanel.DataContext = dua.dua[int.Parse(index)];
}
}
private async void ApplicationBarMenuItem_Click(object sender, EventArgs e)
{
var bmp = new WriteableBitmap(SharePanel,null);
var width = (int)bmp.PixelWidth;
var height = (int)bmp.PixelHeight;
using (var ms = new MemoryStream(width * height * 4))
{
ms.Seek(0, SeekOrigin.Begin);
var storagefile = await KnownFolders.SavedPictures.CreateFileAsync("dua.jpg", CreationCollisionOption.GenerateUniqueName);
using (Stream stream = await storagefile.OpenStreamForWriteAsync())
{
bmp.SaveJpeg(stream, width, height, 0, 100);
}
ShareMediaTask Sharer = new ShareMediaTask();
Sharer.FilePath = storagefile.Path;
Sharer.Show();
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment