티스토리 뷰
윈폰의 얼굴 마담이라고 할 수 있는 타일에 대해서 알아 보고 타일을 간단하게 만들고 조작을 해보자. 타일이 되어야 노티피케이션 작업을 타일에 뿌릴 수 있으니..
1. 엡에 타일은 기본 타일인 ApplicationTile이 존재하고, 타일을 추가도 할 수 있다.
타일에 대한 자세한 설명은 MSDN을 참고한다.
http://msdn.microsoft.com/en-us/library/hh202948(v=vs.92).aspx
타일 오퍼레이션에 대한 추가 예제는 SDK 예제를 참고한다. Tile Sample
http://msdn.microsoft.com/en-us/library/ff431744(v=vs.92).aspx
2. WPSample1
하단에 툴바를 살려서 +를 누르면 세컨드리타일을 추가해서 바탕화면에 깔아 놓고, -를 누르면 세컨드리타일을 삭제하는 기능을 구현했다... 무지 간단한 내용이니 한번 보자
3. MainPage.xaml
<phone:PhoneApplicationPage
x:Class="WPSample1.MainPage"
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"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="696"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True">
<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!--TitlePanel contains the name of the application and page title-->
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock x:Name="ApplicationTitle" Text="kaki Application" Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text="Sample1 Main" 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>
</Grid>
<!--Sample code showing usage of ApplicationBar-->
<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
<shell:ApplicationBarIconButton IconUri="/icons/appbar.add.rest.png" Text="Pin" Click="ApplicationBarIconButton_Click"/>
<shell:ApplicationBarIconButton IconUri="/icons/appbar.minus.rest.png" Text="Unpin" Click="ApplicationBarIconButton_Click"/>
<!--<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="Pin"/>
<shell:ApplicationBarMenuItem Text="Unpin"/>
</shell:ApplicationBar.MenuItems>-->
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>
</phone:PhoneApplicationPage>
4. MainPage.xaml.cs
using System;
using System.Linq;
using System.Windows;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
namespace WPSample1
{
public partial class MainPage : PhoneApplicationPage
{
//생성자
public MainPage()
{
InitializeComponent();
}
//하단 툴박스 클릭 이벤트 처리
private void ApplicationBarIconButton_Click(object sender, System.EventArgs e)
{
ApplicationBarIconButton btn = sender as ApplicationBarIconButton;
if (btn != null)
{
//var shellTile = ShellTile.ActiveTiles.FirstOrDefault(); //ApplicationTile
//에플리케이션의 타일중 SecondaryTile 존재 여부 확인
var shellTile = ShellTile.ActiveTiles
.FirstOrDefault(p => p.NavigationUri.ToString().Contains("MainPage.xaml"));
//버튼 텍스트를 가지구 어떤 버튼인지 확인
switch (btn.Text)
{
case "Pin":
//Pin버튼이라면 바탕화면에 타일이 존재 하지 않는 경우에만 타일 생성
if (shellTile == null)
{
//타일 생성
var tileData = new StandardTileData
{
Title = "Sample1",
Count = 1,
BackgroundImage = new Uri("/icons/appbar.sleep.png", UriKind.Relative),
BackTitle = "Back Sample1",
BackContent = "Back Content",
BackBackgroundImage = new Uri("/icons/appbar.sleep.dark.png", UriKind.Relative)
};
ShellTile.Create(new Uri("/MainPage.xaml", UriKind.Relative), tileData);
MessageBox.Show("Pin 작업을 완료했습니다.");
}
break;
case "Unpin":
//Unpin버튼이라면 타일이 존재하는 경우에 타일 제거
if (shellTile != null)
{
shellTile.Delete();
MessageBox.Show("UnPin 작업을 완료했습니다.");
}
break;
}
}
}
}
}
5. 타일에 대한 더 자세한 설명은..
MSDN을 참고 하도록하고, 다음에는 이 타일에 노티피케이션 데이터를 처리하도록 기능을 추가하도록 하겠다.
'Previous Platforms' 카테고리의 다른 글
Seoul Bus Info Search App Dev 8 (0) | 2012.01.08 |
---|---|
Tile Push Notifications Operation (0) | 2012.01.07 |
Basic sample (0) | 2012.01.07 |
Twitter Client Lecture(강좌 목록) by Silverlight 5 (0) | 2012.01.05 |
[Arg_COMException] error solution: perhaps (4) | 2012.01.04 |
- Total
- Today
- Yesterday
- Bot Framework
- Build 2016
- .net
- Always Encrypted
- #MVVM
- dotNETconf
- kiosk
- ef core
- .net 5.0
- uno platform
- #prism
- uno-platform
- WPF
- MVVM
- IOT
- Behavior
- XAML
- LINQ
- UWP
- C#
- Cross-platform
- PRISM
- Windows 10
- Microsoft
- ComboBox
- windows 11
- #uwp
- #Windows Template Studio
- Visual Studio 2022
- visual studio 2019
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |