Мне просто интересно, был ли законный способ создания и добавления плит из моего приложения. Поскольку я делаю это приложение, которое делает заметки и сохраняет его, мне было интересно, есть ли способ сделать это. У меня установлен Windows Phone 7.8 и есть последний SDK. Я ищу эту функцию, при этом поддерживаются и обновляются все три размера плитки.WP7 - Добавление плитки в приложение (ошибка для запуска)
Спасибо!
UPDATE
Public Shared Sub CreateTile(uri As Uri, tiledata As ShellTileData, usewide As Boolean)
Dim shellTileType As Type = Type.[GetType]("Microsoft.Phone.Shell.ShellTile, Microsoft.Phone")
Dim Createmethod As MethodInfo = shellTileType.GetMethod("Create", {GetType(Uri), GetType(ShellTileData), GetType(Boolean)})
Createmethod.Invoke(Nothing, New Object() {uri, tiledata, usewide})
End Sub
Private Shared Sub SetProperty(instance As Object, name As String, value As Object)
Dim setMethod = instance.[GetType]().GetProperty(name).GetSetMethod()
setMethod.Invoke(instance, New Object() {value})
End Sub
Private Sub PinToStart_Click(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs)
Dim Storage As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication()
Dim data As SampleData = TryCast(TryCast(sender, MenuItem).DataContext, SampleData)
Dim selectedItem As ListBoxItem = TryCast(Me.SavedNotesList.ItemContainerGenerator.ContainerFromItem(data), ListBoxItem)
Dim FS As IsolatedStorageFileStream = Storage.OpenFile("MyNote/SavedNotes/" & data.FileNameX, FileMode.Open, FileAccess.Read)
Dim FETime As String = Storage.GetCreationTime("MyNote/SavedNotes/" & data.FileNameX).ToString("dd/mm/yyyy h:mmtt")
Using SR As New StreamReader(FS)
Dim newTile As ShellTile = ShellTile.ActiveTiles.FirstOrDefault(Function(x) x.NavigationUri.ToString().Contains("/CreateNote.xaml?tile=" & data.FileNameX))
If newTile Is Nothing Then
Dim tileDataType As Type = Type.[GetType]("Microsoft.Phone.Shell.IconicTileData, Microsoft.Phone")
Dim IconicTileData As ShellTileData = DirectCast(tileDataType.GetConstructor(New Type() {}).Invoke(Nothing), ShellTileData)
SetProperty(IconicTileData, "Title", data.FileNameX)
SetProperty(IconicTileData, "BackgroundColor", Colors.Transparent)
SetProperty(IconicTileData, "IconImage", New Uri("\Assets\202.png", UriKind.Relative))
SetProperty(IconicTileData, "SmallIconImage", New Uri("\Assets\110.png", UriKind.Relative))
SetProperty(IconicTileData, "WideContent1", SR.ReadLine)
SetProperty(IconicTileData, "WideContent2", SR.ReadLine)
SetProperty(IconicTileData, "WideContent3", FETime)
CreateTile(New Uri("/CreateNote.xaml?Titletxt=" & data.FileNameX & "&Bodytxt=" & data.Description, UriKind.Relative), IconicTileData, True)
Else
MessageBox.Show("The tile has been pin to start!")
End If
End Using
End Sub
Soo далеко я сумел создать его и он работает! Но есть одна проблема. Как только пользователь нажимает на плитку, он переходит на страницу CreateNote, где пользователь просматривает ее. но пользователь не имеет никакого контроля над файлом, так как в файле нельзя редактировать или сохранять что-либо. Его в основном просто мнение только. Как я могу сделать так, чтобы, когда пользователь нажимает на плитку, он переходит на страницу «CreateNote» со всеми включенными функциональными возможностями?
Я обновил свое сообщение :) –