add TileCreator

This commit is contained in:
stubbfel
2013-09-16 16:32:39 +02:00
parent c01caf703a
commit e5bde7a95b
4 changed files with 94 additions and 1 deletions

View File

@@ -146,6 +146,7 @@
<DependentUpon>ShowPad.xaml</DependentUpon>
</Compile>
<Compile Include="Utility\Lui\Button\AddPersonButton.cs" />
<Compile Include="Utility\Lui\Tiles\TileCreator.cs" />
<Compile Include="Utility\NDEF\NDEFMessage.cs" />
<Compile Include="Utility\NDEF\NDEFRecord.cs" />
<Compile Include="Utility\NDEF\NDEFShortRecord.cs" />

View File

@@ -7,6 +7,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:lui="clr-namespace:CampusAppWP8.Utility.Lui.Button"
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
@@ -94,7 +95,7 @@
<!-- Row 2 -->
<Grid Name="Row2">
<Grid Name="Row2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
@@ -112,6 +113,15 @@
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
<Image Source="{Binding Path=ThemelizedIcon.Mensa, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.MensaApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Header="Pin to Start" Click="PintoStart_Click">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</StackPanel>
</lui:NavigateButton>
@@ -120,6 +130,13 @@
<Image Source="{Binding Path=ThemelizedIcon.WebMail, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
<TextBlock Text="{Binding Path=LocalizedResources.MailApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
</StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Header="Pin to Start" Click="PintoStart_Click2">
</toolkit:MenuItem>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</lui:NavigateButton>
</Grid>

View File

@@ -8,6 +8,7 @@
namespace CampusAppWP8.Pages
{
using System;
using System.Linq;
using System.Threading;
using System.Windows;
using System.Windows.Controls;
@@ -19,6 +20,7 @@ namespace CampusAppWP8.Pages
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using CampusAppWP8.File.Places;
using CampusAppWP8.Utility.Lui.Tiles;
/// <summary>
/// Class for the StartPage
@@ -278,6 +280,33 @@ namespace CampusAppWP8.Pages
#endregion
private void PintoStart_Click(object sender, RoutedEventArgs e)
{
TileCreator.CreateMensaTile();
}
private void PintoStart_Click2(object sender, RoutedEventArgs e)
{
IconicTileData oIcontile = new IconicTileData();
oIcontile.Title = "WebmailPage";
oIcontile.IconImage = new Uri(Icons.Mensa, UriKind.Relative);
oIcontile.SmallIconImage = new Uri(Icons.Mensa, UriKind.Relative);
// find the tile object for the application tile that using "Iconic" contains string in it.
ShellTile TileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("WebmailPage".ToString()));
if (TileToFind != null && TileToFind.NavigationUri.ToString().Contains("WebmailPage"))
{
TileToFind.Delete();
ShellTile.Create(new Uri(Constants.PathMail_WebMailPage, UriKind.Relative), oIcontile, true);
}
else
{
ShellTile.Create(new Uri(Constants.PathMail_WebMailPage, UriKind.Relative), oIcontile, true);
}
}
#endregion
}
}

View File

@@ -0,0 +1,46 @@
using CampusAppWP8.Resources;
using Microsoft.Phone.Shell;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CampusAppWP8.Utility.Lui.Tiles
{
public class TileCreator
{
public static void CreateIconicTile(string title, string path, string iconUrl, string smallIcon, string wContent1 = null, string wContent2 = null, string wContent3 = null)
{
IconicTileData oIcontile = new IconicTileData();
oIcontile.Title = title;
oIcontile.WideContent1 = wContent1;
oIcontile.WideContent2 = wContent2;
oIcontile.WideContent3 = wContent3;
oIcontile.IconImage = new Uri(iconUrl, UriKind.Relative);
oIcontile.SmallIconImage = new Uri(smallIcon, UriKind.Relative);
// find the tile object for the application tile that using "Iconic" contains string in it.
ShellTile TileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains(path));
if (TileToFind != null && TileToFind.NavigationUri.ToString().Contains(path))
{
TileToFind.Delete();
}
ShellTile.Create(new Uri(path, UriKind.Relative), oIcontile, true);
}
public static void CreateMensaTile()
{
TileCreator.CreateIconicTile(AppResources.MensaApp_Title, Constants.PathMensa_MensaPage, Icons.Mensa, Icons.Mensa);
}
public static void CreateWebMailTile()
{
TileCreator.CreateIconicTile(AppResources.MensaApp_Title, Constants.PathMensa_MensaPage, Icons.Mensa, Icons.Mensa);
}
}
}