2013-11-29 3 views
0

Мне просто интересно, был ли законный способ создания и добавления плит из моего приложения. Поскольку я делаю это приложение, которое делает заметки и сохраняет его, мне было интересно, есть ли способ сделать это. У меня установлен 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» со всеми включенными функциональными возможностями?

ответ

Смежные вопросы