A XAML browser application (XBAP) running in partial trust can safely upload files from a client machine. : Page « Windows Presentation Foundation « VB.Net






A XAML browser application (XBAP) running in partial trust can safely upload files from a client machine.

A XAML browser application (XBAP) running in partial trust can safely upload files from a client machine.
     


<Page x:Class="SafeFileUploadPartialTrustSample.HomePage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="HomePage"
  xmlns:dialogs="clr-namespace:Microsoft.Win32;assembly=PresentationFramework">
    <StackPanel>
    <Button Name="uploadButton" Click="uploadButton_Click" Width="100">Upload Image...</Button>
    <Image Name="viewImage" Width="500" Height="300"></Image>
    <Label Name="nameLabel"></Label>
    
    </StackPanel>
</Page>
//File:Window.xaml.vb
Imports System
Imports System.IO
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Imports System.Windows.Media.Imaging
Imports System.Windows.Navigation
Imports Microsoft.Win32

Namespace SafeFileUploadPartialTrustSample
  Public Partial Class HomePage
    Inherits Page
    Implements IProvideCustomContentState
    Public Sub New()
      InitializeComponent()
    End Sub

    Private Sub uploadButton_Click(sender As Object, e As RoutedEventArgs)
      Dim dlg As New OpenFileDialog()
      dlg.Filter = "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*"

      If dlg.ShowDialog() = True Then
        If Me.viewImage.Source IsNot Nothing Then
          Dim iccs As New ImageCustomContentState(Me.viewImage.Source, DirectCast(Me.nameLabel.Content, String))
          Me.NavigationService.AddBackEntry(iccs)
        End If
        Using stream As Stream = dlg.OpenFile()
          Dim bitmapDecoder__1 As BitmapDecoder = BitmapDecoder.Create(stream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.OnLoad)
          Me.viewImage.Source = bitmapDecoder__1.Frames(0)
          Me.nameLabel.Content = dlg.SafeFileName
        End Using
      End If
    End Sub
    Public Function GetContentState() As CustomContentState Implements IProvideCustomContentState.GetContentState
      Return New ImageCustomContentState(Me.viewImage.Source, DirectCast(Me.nameLabel.Content, String))
    End Function
  End Class
  <Serializable> _
  Public Class ImageCustomContentState
    Inherits CustomContentState

    Private imageSource As ImageSource
    Private filename As String

    Public Sub New(imageSource As ImageSource, filename As String)
      Me.imageSource = imageSource
      Me.filename = filename
    End Sub

    Public Overrides ReadOnly Property JournalEntryName() As String
      Get
        Return Me.filename
      End Get
    End Property

    Public Overrides Sub Replay(navigationService As NavigationService, mode As NavigationMode)
      Dim homePage As HomePage = DirectCast(navigationService.Content, HomePage)
      homePage.viewImage.Source = Me.imageSource
      homePage.nameLabel.Content = Me.filename
    End Sub
  End Class
End Namespace

   
    
    
    
    
  








Related examples in the same category

1.Automatic InlineUIContainer generation: text along with ButtonAutomatic InlineUIContainer generation: text along with Button
2.Path Reference Page SnipPath Reference Page Snip
3.Create a button when the page loads.Create a button when the page loads.
4.Page Loaded eventPage Loaded event
5.Remember and navigate through multiple sets of state for a single page instanceRemember and navigate through multiple sets of state for a single page instance
6.Navigate to an instance of a custom class, instead of a Page.Navigate to an instance of a custom class, instead of a Page.
7.Select Product Page FunctionSelect Product Page Function
8.UI With Page for Dynamic Button contentUI With Page for Dynamic Button content