c# .net pdf viewer : Add page numbers to pdf online control application system web page html azure console Pro_Silverlight_5_in_CSharp_4th_edition65-part132

CHAPTER 18  OUT-OF-BROWSER APPLICATIONS 
647 
if (e.Error is PlatformNotSupportedException
MessageBox.Show("An application update is available, " + 
"but it requires a new version of Silverlight. " + 
"Visit http://silverlight.net to upgrade."); 
else 
MessageBox.Show("An application update is available, " + 
"but it cannot be installed. Please remove the current version " + 
"before installing the new version."); 
To try the application update feature, you’ll need to create an ASP.NET test website (as described in 
Chapter 1). That’s because Silverlight only supports downloading from a web location, not the file 
system. However, there’s still a catch. As you know, Visual Studio chooses a random port number when 
it starts the test web server. If you close and restart Visual Studio, it will pick a new port number for its 
test web server, but any previously installed out-of-browser applications will continue using the old port 
number to check for updates. Their attempts will fail silently, and your application won’t be updated 
until you manually remove and reinstall it. To avoid this problem altogether, you can deploy your 
Silverlight application to an IIS test server on your computer or the local network. 
Silent Installation 
There’s one other, less traveled, road to installing an out-of-browser application. Using the 
sllauncher.exe tool, you can install the application automatically and silently on a Windows computer, 
using the command line. This functionality is primarily useful if you want to install a Silverlight 
application through a batch file, from a setup CD, or as some sort of automated installation sequence. 
(In all these cases, it’s also worth considering if a full-fledged WPF application would suit the problem 
better than a Silverlight application.) 
As you learned earlier, sllauncher.exe is part of the Silverlight runtime and the tool that’s used to 
launch out-of-browser applications. To use it install a Silverlight application, the destination computer 
must already have an installed copy of Silverlight 4. Assuming this detail is in place, you can use a 
command like this to install your application: 
You run this command from the folder where your XAP file is placed (for example, a setup CD). 
This line installs the application for the first time, with no support for updating. It’s more common 
to add the /origin parameter (to specify the server the application will use for updates when you call the 
Application.CheckAndDownloadUpdateAsync() method), the /overwrite parameter (to ensure that the 
application installs over any old, already installed versions of the same application), and the /shortcut 
parameter (to explicitly specify whether you want a desktop shortcut, a Start menu shortcut, or both). 
/shortcut:desktop+startmenu  
www.it-ebooks.info
Add page numbers to pdf online - insert pages into PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide C# Users to Insert (Empty) PDF Page or Pages from a Supported File Format
add a page to pdf file; add document to pdf pages
Add page numbers to pdf online - VB.NET PDF Page Insert Library: insert pages into PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use VB.NET APIs to Add a New Blank Page to PDF Document
add pdf pages to word document; adding pages to a pdf document
CHAPTER 18  OUT-OF-BROWSER APPLICATIONS 
648 
 Tip  It’s important to use the variable %ProgramFiles% instead of hard-coding the Program Files directory, 
because this directory varies (it’s typically c:\Program Files\ on a 32-bit operating system and c:\Program Files 
(x86)\ on a 64-bit operating system). 
Out-of-Browser Application Features 
Although an out-of-browser application looks superficially different from an ordinary Silverlight 
application, what happens inside the stand-alone window is virtually the same. However, there are 
exceptions, and in this section you’ll learn about the three that apply to all out-of-browser applications, 
regardless of their trust level. First, you’ll see how the WebBrowser control allows you to embed HTML 
content inside your Silverlight application. Next, you’ll see learn how to display notifications in separate 
pop-up windows. Finally, you’ll consider how you can interact with the main application window to 
change its size, position, or state. 
The WebBrowser Control 
Ordinary Silverlight applications can use Silverlight’s browser integration features to interact with the 
HTML and JavaScript of the hosting page. As you learned in Chapter 17, that means they can change 
HTML content and trigger JavaScript functions. None of this is possible with an out-of-browser 
application, because it doesn’t have a host web page that you can configure. 
To make up for this potential shortcoming, out-of-browser applications can use the WebBrowser 
control, which hosts HTML content (see Figure 18-7). However, just as the browser interaction features 
are limited to in-browser applications, the WebBrowser control is limited to out-of-browser 
applications. If you use the WebBrowser in an ordinary Silverlight application, you’ll get a mostly blank 
rectangle with a message stating that the WebBrowser is not enabled. (The only exception is the very rare 
species of applications called in-browser elevated-trust  applications, which are new to Silverlight 5 and 
described later in this chapter. They also allow the WebBrowser control.) 
www.it-ebooks.info
C# Create PDF Library SDK to convert PDF from other file formats
them the ability to count the page numbers of generated PDF document in C#.NET using this PDF document creating toolkit, if you need to add some text
adding page numbers to pdf documents; add page number to pdf file
C# Word - Word Create or Build in C#.NET
also offer them the ability to count the page numbers of generated using this Word document adding control, you can add some additional Create Word From PDF.
add page numbers to a pdf in preview; add a page to a pdf in reader
CHAPTER 18  OUT-OF-BROWSER APPLICATIONS 
649 
Figure 18-7. The WebBrowser in action 
Figure 18-7 combines a TextBox, Button, and WebBrowser control in a Grid. Here’s the markup: 
<Grid x:Name="LayoutRoot" Background="White"> 
<Grid.RowDefinitions> 
<RowDefinition Height="Auto"></RowDefinition> 
<RowDefinition></RowDefinition> 
</Grid.RowDefinitions> 
<Grid.ColumnDefinitions> 
<ColumnDefinition></ColumnDefinition> 
<ColumnDefinition Width="Auto"></ColumnDefinition> 
</Grid.ColumnDefinitions> 
 
<TextBox x:Name="txtUrl" Margin="5,5,1,5" 
www.it-ebooks.info
C# PowerPoint - PowerPoint Creating in C#.NET
file but also offer them the ability to count the page numbers of generated NET using this PowerPoint document creating toolkit, if you need to add some text
adding page numbers to pdf in reader; adding a page to a pdf in preview
C# Word - Word Creating in C#.NET
document file but also offer them the ability to count the page numbers of generated using this Word document creating toolkit, if you need to add some text
adding a page to a pdf file; add blank page to pdf
CHAPTER 18  OUT-OF-BROWSER APPLICATIONS 
650 
Text="http://www.prosetech.com"></TextBox> 
<Button Grid.Column="1" Click="cmdGo_Click" Content="Go" 
Margin="1,5,5,5"></Button> 
<Border Grid.Row="1" Grid.ColumnSpan="2" Margin="5" 
BorderBrush="Black" BorderThickness="1"> 
<WebBrowser x:Name="browser"></WebBrowser> 
</Border> 
</Grid> 
The WebBrowser provides an extremely simple programming model, with just a handful of 
members. The following sections show you how it works. 
Showing HTML Content 
When using the WebBrowser, you can specify the content in three ways. 
The most direct approach is to call the NavigateToString() method and pass in a string with the 
HTML content you want to show. This allows you to use the WebBrowser to show static content you 
have on hand or content you’ve grabbed from a web service. Usually, you’ll supply a complete HTML 
document, but an HTML snippet like this works just as well: 
browser.NavigateToString("<h1>Welcome to the WebBrowser Test</h1>"); 
Your second approach is to call the Navigate() method and pass in a fully qualified or relative URI 
that points to the content you want to show. For example, this code reacts to a button click and directs 
the user to the URL that was typed in the text box: 
private void cmdGo_Click(object sender, RoutedEventArgs e) 
try 
browser.Navigate(new Uri(txtUrl.Text)); 
catch 
// file://, and https://). 
The third possible approach is to set the Source property of the WebBrowser to a fully qualified or 
relative URI. This is effectively the same as calling the Navigate() method. 
browser.Source = new Uri(txtUrl.Text)); 
You can’t use the Navigate() method or the Source property with an application URI. In other words, 
it’s not possible for the WebBrowser to load an HTML file that’s and embedded in your XAP file (unless 
you manually access that resource, load it into a string, and call the NavigateToString() method). 
www.it-ebooks.info
VB.NET TIFF: VB.NET Sample Codes to Sort TIFF File with .NET
manipulating multi-page TIFF (Tagged Image File), PDF, Microsoft Office If you want to add barcode into a TIFF a multi-page TIFF file with page numbers using VB
add page number to pdf hyperlink; add page number pdf file
C# Excel: Create and Draw Linear and 2D Barcodes on Excel Page
can also load document like PDF, TIFF, Word get the first page BasePage page = doc.GetPage REImage barcodeImage = linearBarcode.ToImage(); // add barcode image
add and delete pages from pdf; add page number pdf
CHAPTER 18  OUT-OF-BROWSER APPLICATIONS 
651 
 Note  To test a Silverlight application that loads web pages into the WebBrowser control, you must include an 
ASP.NET website in your solution. This shouldn’t come as a surprise, because this is a requirement for many of 
Silverlight’s web-based features, including web services and networking. 
The WebBrowser has some inevitable limitations. Unlike the HTML interaction features described 
in Chapter 17, the WebBrowser doesn’t expose the HTML document as a collection of HtmlElement 
objects, so there’s no way to programmatically explore its structure. However, you can grab the 
complete HTML document as a string at any time by calling the WebBrowser.SaveToString() method. 
The WebBrowserBrush 
The WebBrowser doesn’t integrate with the Silverlight rendering system. For example, you can’t apply 
pixel shader effects and transforms to change the appearance of a web page. However, Silverlight does 
provide a crafty workaround for developers who truly need this ability. You can display the visual 
content from a WebBrowser window on another element (for example, a Rectangle) by painting it with 
the WebBrowserBrush. Consider this example, which places both a WebBrowser and Rectangle in the 
same cell of a Grid, with the Rectangle superimposed on top but showing the content from the 
WebBrowser underneath: 
<Grid> 
<WebBrowser x:Name="browser" Source="Hello.html" Height="150" Width="150" /> 
<Rectangle> 
<Rectangle.Fill> 
<WebBrowserBrush SourceName="browser" /> 
</Rectangle.Fill> 
</Rectangle> 
</Grid> 
This is essentially the same technique as the one you used to paint video content with the 
VideoBrush in Chapter 12. The only limitation is that the copy you paint won’t be user-interactive. For 
example, if you paint a Rectangle with a WebBrowserBrush, the user can’t scroll the page or click a link. 
For this reason, you’ll probably use the WebBrowserBrush briefly, to apply specific effects. For 
example, you could create an animation that tweaks a rotate transform and scale transform to make a 
Rectangle that’s painted with the WebBrowserBrush “pop” onto the screen. Once the animation 
finishes, you would hide the Rectangle and show the real WebBrowser with the source content. 
Interacting with JavaScript Code 
Although it’s not terribly common, you can enable basic interaction between your Silverlight application 
and JavaScript code using the WebBrowser control. To invoke a JavaScript method in the currently 
loaded HTML document, you use the InvokeScript() method, as shown here: 
browser.InvokeScript("MyJavaScriptFunction"); 
www.it-ebooks.info
VB.NET Image: Guide to Convert Images to Stream with DocImage SDK
Follow this guiding page to learn how to easily convert a single image or numbers of it an image processing component which can enable developers to add a wide
add page numbers pdf file; adding page numbers in pdf file
C# Word: How to Use C# Code to Print Word Document for .NET
are also available within C# Word Printer Add-on , like pages at one paper, setting the page copy numbers to be C# Class Code to Print Certain Page(s) of Word.
add page numbers to pdf files; add pages to pdf without acrobat
CHAPTER 18  OUT-OF-BROWSER APPLICATIONS 
652 
The InvokeScript() accepts an optional array of string values as a second parameter, which it will 
pass to the function as arguments. It also provides the return value from the JavaScript function as its 
own return value: 
object result = browser.InvokeScript("AddTwoNumbers"new string[] { "1""2" }); 
To react to a JavaScript method, you can handle the WebBrowser.ScriptNotify event. This event fires 
when JavaScript code calls window.external.notify. For example, if you use this statement in a JavaScript 
block: 
window.external.notify("This is a notification from JavaScript") 
you can retrieve the string in an event handler like this:  
private void Browser_ScriptNotify(object sender, NotifyEventArgs e) 
MessageBox.Show("Received message: " + e.Value); 
However, the WebBrowser control doesn’t support the scriptable type system that’s described in 
Chapter 17 for JavaScript-to-Silverlight interaction. 
Notification Windows 
A notification window is one that pops up in the lower-right corner of the screen, similar to the ones that 
Outlook uses to notify users about incoming e-mails or Messenger uses to alert the user to a new instant 
message. (On the Macintosh, notification windows appear at the top of the screen rather than the 
bottom.) 
In Silverlight, a basic notification window is a completely unremarkable blank box, 400 pixels wide 
and 100 pixels tall. You can resize it to have smaller dimensions but not larger ones. To create a 
notification window, you create an instance of the NotificationWindow class. To place a notification into 
the notification window, you simply set its Content property.  
If you want your notification window to contain something more than a plain TextBlock, you should 
create a custom user control for its content. You can then create an instance of that user control and use 
it to set the NotificationWindow.Content property. The following example uses a two-row Grid for the 
notification window content. At the top of the Grid is a title bar. Underneath is a TextBlock (for the 
application-supplied message) that’s placed over a multicolor gradient fill: 
<UserControl x:Class="ElevatedTrust.CustomNotification" ...> 
<Grid> 
<Grid.RowDefinitions> 
<RowDefinition Height="Auto"></RowDefinition> 
<RowDefinition></RowDefinition> 
</Grid.RowDefinitions> 
<Border Background="LightGray" Height="20"> 
<TextBlock Margin="3" FontSize="10"  
Text="MyApplication Notification"></TextBlock> 
</Border> 
<Border Grid.Row="1"> 
www.it-ebooks.info
C# Excel - Excel Creating in C#.NET
document file but also offer them the ability to count the page numbers of generated using this Excel document creating toolkit, if you need to add some text
adding pages to a pdf; add page numbers to pdf document
C#: Use XImage.OCR to Recognize MICR E-13B, OCR-A, OCR-B Fonts
may need to scan and get check characters like numbers and codes. page.RecSettings. LanguagesEnabled.Add(Language.Other); page.RecSettings.OtherLanguage
add and remove pages from a pdf; adding page numbers in pdf
CHAPTER 18  OUT-OF-BROWSER APPLICATIONS 
653 
<Border.Background> 
<LinearGradientBrush> 
... 
</LinearGradientBrush> 
</Border.Background> 
<TextBlock x:Name="lblMessage" Margin="10" FontWeight="Bold" FontSize="16" 
Foreground="White" TextWrapping="Wrap" HorizontalAlignment="Center" 
VerticalAlignment="Center">Notification goes here.</TextBlock> 
</Border> 
</Grid> 
</UserControl> 
The code that for the CustomNotification user control exposes a Message property that sets the 
TextBlock: 
public string Message 
get 
return lblMessage.Text; 
set 
lblMessage.Text = value
To show the notification window, you simply need to create an instance of CustomNotification, 
place it in an instance of the framework-supplied NotificationWindow class, and call 
NotificationWindow.Show() to display your notification: 
if (Application.Current.IsRunningOutOfBrowser) 
CustomNotification notification = new CustomNotification(); 
notification.Message = "You have just been notified. The time is " + 
DateTime.Now.ToLongTimeString() + "."
NotificationWindow window = new NotificationWindow(); 
window.Content = notification; 
// Specify the number of milliseconds before the window closes. 
// This example sets 5 seconds. 
window.Show(5000); 
else 
// Notification windows are not available. 
www.it-ebooks.info
CHAPTER 18  OUT-OF-BROWSER APPLICATIONS 
654 
Figure 18-8 shows the notification message. 
Figure 18-8. A custom notification 
The user can’t move a notification window. However, you could add a button inside the notification 
window that calls NotificationWindow.Close(), which would allow the user to close the notification 
before it times out. 
 Tip  This example assumes you want to use the standard notification window width (400 by 100 pixels). If you 
want to resize the window smaller, you should hard-code a Width and Height in the custom user control. Then, 
when you create the NotificationWindow, take the Width and Height of the custom user control and assign it to the 
NotificationWindow. This way, you get a true sense of what your notification window looks like when you edit the 
user control, and you can change the size whenever you want by modifying just one file (the user control XAML). 
Notification windows aren’t designed with any sort of queuing mechanism. If you create a second 
instance of NotifyWindow and call its Show() method while the first notification window is still visible, 
nothing will happen (and the new notification message will be lost). A better approach is to store the 
NotifyWindow you want to use as a class-level field in your code: 
private NotificationWindow window = new NotificationWindow(); 
Then, you can explicitly call Close() to hide the first notification just before you call Show() to show 
the second. Best of all, you don’t even need to check the current state of the notification window, 
because calling Close() on an already closed window has no effect. 
CustomNotification notification = new CustomNotification(); 
notification.Message = "You have just been notified. The time is " + 
DateTime.Now.ToLongTimeString() + ".";                                 
window.Content = notification; 
www.it-ebooks.info
CHAPTER 18  OUT-OF-BROWSER APPLICATIONS 
655 
window.Close(); 
window.Show(5000); 
In some applications, you may expect to have multiple notifications occurring in close proximity. In 
this case, the Close() and Show() approach may not be suitable, because it may hide a notification before 
the user has time to read it. To avoid this problem, you can implement a queuing system. The basic idea 
is to maintain an application-wide Queue<T> collection of notification messages and to handle the 
NotificationWindow.Closed event. Every time the Closed event occurs, you can respond by dequeuing 
the next message and calling Show() to show the notification window again. Tim Heuer shows one 
possible implementation at http://tinyurl.com/yfefkud. 
Controlling the Main Window 
An ordinary Silverlight application runs inside a web browser window, and the only way to interact with 
that window is through JavaScript. But in an out-of-browser application, you get a stand-alone window, 
which you can interact with as a Window object through the static Application.MainWindow property. 
The Window class provides a small set of properties and methods, as listed in Table 18-2. You can 
read these properties at any time, and you can change most of them in response to user-initiated events 
and in an event handler for the Application.Startup event (the exception being the Top and Left 
properties, which must be set in the Application.Startup event handler). 
Table 18-2. Properties of the Window Class 
Properties 
Description 
Top and Left  
Top is the number of pixels between the top edge of the window and 
the top edge of the screen. Left is the number of pixels between the left 
edge of the window and the left edge of the screen. You can only set 
these properties in an event handler for the Application.Startup event 
and only if you have specified initial startup coordinates in the Out-of-
Browser Settings window. 
Height and Width  
Provides the height and width of the main window, in pixels. You can 
only set these properties in an event handler for the Application.Startup 
event or in response to a user-initiated event. 
WindowState  
Indicates whether the window is Normal, Minimized, or Maximized, as 
a value from the WindowState enumeration. You can only set this 
property in an event handler for the Application.Startup event or in 
response to a user-initiated event. 
TopMost  
If true, the window is “pinned” so it appears above all other application 
windows. You can only set this property in an event handler for the 
Application.Startup event or in response to a user-initiated event. 
The best way to set the initial position and size of the main window is using the Out-of-Browser 
Settings window. But the Window properties are useful if you need to change the size dynamically at 
runtime—for example, if you need to accommodate changing amounts of content. 
www.it-ebooks.info
CHAPTER 18  OUT-OF-BROWSER APPLICATIONS 
656 
The Windows properties also allow you to create an application that remembers its window 
position. To do this, you simply save the relevant details when the application shuts down and restore 
them when it starts up. Here’s an example that performs this feat using isolated storage: 
private void Application_Startup(object sender, StartupEventArgs e) 
if (Application.Current.IsRunningOutOfBrowser) 
// (You can check for updates here, if you want.) 
// Restore the window state. 
try 
IsolatedStorageFile store = 
IsolatedStorageFile.GetUserStoreForApplication(); 
if (store.FileExists("window.Settings")) 
using (IsolatedStorageFileStream fs = 
store.OpenFile("window.Settings"FileMode.Open)) 
BinaryReader r = new BinaryReader(fs); 
Application.Current.MainWindow.Top = r.ReadDouble(); 
Application.Current.MainWindow.Left = r.ReadDouble(); 
Application.Current.MainWindow.Width = r.ReadDouble(); 
Application.Current.MainWindow.Height = r.ReadDouble(); 
r.Close(); 
catch (Exception err) 
this.RootVisual = new MainPage(); 
private void Application_Exit(object sender, EventArgs e) 
if (Application.Current.IsRunningOutOfBrowser) 
// Store window state.             
try 
IsolatedStorageFile store = 
IsolatedStorageFile.GetUserStoreForApplication(); 
using (IsolatedStorageFileStream fs = 
store.CreateFile("window.Settings")) 
www.it-ebooks.info
Documents you may be interested
Documents you may be interested