c# free pdf viewer : Add page number to pdf file application SDK tool html wpf windows online Pro_Silverlight_5_in_CSharp_4th_edition18-part80

CHAPTER 5  ELEMENTS 
169 
can manipulate it in code. The placement of the Popup in your markup isn’t important, because its top-
left corner will always be aligned with the top-left corner of the Silverlight content region. 
<StackPanel Margin="20"> 
<TextBlock TextWrapping="Wrap" MouseLeftButtonDown="txt_MouseLeftButtonDown" 
Text="Click here to open the PopUp."></TextBlock> 
<Popup x:Name="popUp" MaxWidth="200"> 
<Border Background="Lime" MouseLeftButtonDown="popUp_MouseLeftButtonDown"> 
<TextBlock Margin="10" Text="This is the PopUp."></TextBlock> 
</Border> 
</Popup> 
</StackPanel> 
The only remaining details are the relatively trivial code that shows the Popup when the user clicks 
it and the code that hides the Popup when it’s clicked: 
private void txt_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
popUp.IsOpen = true
private void popUp_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
popUp.IsOpen = false
Figure 5-10 shows the Popup in action. 
Figure 5-10. A tooltip-like effect with the Popup 
 Tip  If you plan to create an extravagantly detailed Popup, you may want to consider creating a custom user 
control for the Popup content. You can then place an instance of that custom user control inside your pop-up. The 
end result is thee 
www.it-ebooks.info
Add page number to pdf file - 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
adding pages to a pdf document; add pages to pdf
Add page number to pdf file - 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 a page to a pdf online; adding page numbers to pdf documents
CHAPTER 5  ELEMENTS 
170 
on the characteristics of a self-contained dialog box, you should consider the ChildWindow control instead, which 
is described in Chapter 7. 
Items Controls 
Controls that wrap collections of items generally derive from the ItemsControl class. Silverlight provides 
four list-based controls. You’ll take a look at the ListBox, the ComboBox, and the TabControl in this 
section. You’ll explore the TreeView in Chapter 21. 
The ItemsControl class fills in the basic plumbing that’s used by all list-based controls. Notably, it 
gives you two ways to fill the list of items. The most straightforward approach is to add them directly to 
the Items collection, using code or XAML. This is the approach you’ll see in this chapter. However, if you 
need to display a dynamic list, it’s more common to use data binding. In this case, you set the 
ItemsSource property to the object that has the collection of data items you want to display. This process 
is covered in Chapter 20. 
The ListBox 
To add items to the ListBox, you can nest ListBoxItem elements inside the ListBox element. For example, 
here’s a ListBox that contains a list of colors: 
<ListBox
<ListBoxItem Content="Green"></ListBoxItem
<ListBoxItem Content="Blue"></ListBoxItem
<ListBoxItem Content="Yellow"></ListBoxItem
<ListBoxItem Content="Red"></ListBoxItem
</ListBox
As you’ll recall from Chapter 2, different controls treat their nested content in different ways. The 
ListBox stores each nested object in its Items collection. 
 Note  The ListBox class also allows multiple selection if you set the SelectionMode property to Multiple or 
Extended. In Multiple mode, you can select or deselect any item by clicking it. In Extended mode, you need to hold 
down the Ctrl key to select additional items or the Shift key to select a range of items. In either type of multiple-
selection list, you use the SelectedItems collection instead of the SelectedItem property to get all the selected 
items. 
The ListBox is a remarkably flexible control. Rather than being limited to ListBoxItem objects, it can 
hold any arbitrary element. This works because the ListBoxItem class derives from ContentControl, 
which gives it the ability to hold a single piece of nested content. If that piece of content is a UIElement-
derived class, it will be rendered in the ListBox. If it’s some other type of object, the ListBoxItem will call 
ToString() and display the resulting text. 
For example, if you decided you want to create a list with images, you could create markup like this: 
www.it-ebooks.info
C# PDF File Split Library: Split, seperate PDF into multiple files
If your page number is set as 1, then the two output PDF files will contains the first page and the later three pages Add necessary references:
add blank page to pdf; add pdf pages to word document
VB.NET PDF File Split Library: Split, seperate PDF into multiple
can split target multi-page PDF document file to one-page PDF files or PDF file to smaller PDF documents by every given number of pages Add necessary references
add and delete pages from pdf; add or remove pages from pdf
CHAPTER 5  ELEMENTS 
171 
<ListBox> 
<ListBoxItem> 
<Image Source="happyface.jpg"></Image> 
</ListBoxItem> 
<ListBoxItem> 
<Image Source="happyface.jpg"></Image> 
</ListBoxItem> 
</ListBox> 
The ListBox is actually intelligent enough to create the ListBoxItem objects it needs implicitly. That 
means you can place your objects directly inside the ListBox element. Here’s a more ambitious example 
that uses nested StackPanel objects to combine text and image content: 
<ListBox> 
<StackPanel Orientation="Horizontal"> 
<Image Source="happyface.jpg"  Width="30" Height="30"></Image> 
<TextBlock VerticalAlignment="Center" Text="A happy face"></TextBlock> 
</StackPanel> 
<StackPanel Orientation="Horizontal"> 
<Image Source="redx.jpg" Width="30" Height="30"></Image> 
<TextBlock VerticalAlignment="Center" Text="A warning sign"></TextBlock> 
</StackPanel> 
<StackPanel Orientation="Horizontal"> 
<Image Source="happyface.jpg"  Width="30" Height="30"></Image> 
<TextBlock VerticalAlignment="Center" Text="A happy face"></TextBlock> 
</StackPanel> 
</ListBox> 
In this example, the StackPanel becomes the item that’s wrapped by the ListBoxItem. This markup 
creates the list shown in Figure 5-11. 
Figure 5-11. A list of images 
www.it-ebooks.info
C# PDF insert text Library: insert text into PDF content in C#.net
pageIndex, The page index of the PDF page that will be 0
add page numbers pdf file; add document to pdf pages
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
Highlight Text. Add Text. Add Text Box. Drawing Markups. PDF users to do multiple manipulations on PDF file and page Please note that, PDF page number starts from
add page numbers to pdf online; adding a page to a pdf in reader
CHAPTER 5  ELEMENTS 
172 
This ability to nest arbitrary elements inside list box items allows you to create a variety of list-based 
controls without needing to use specialized classes. For example, you can display a check box next to 
every item by nesting the CheckBox element inside the ListBox. 
There’s one caveat to be aware of when you use a list with different elements inside. When you read 
the SelectedItem value (and the SelectedItems and Items collections), you won’t see ListBoxItem 
objects—instead, you’ll see whatever objects you placed in the list. In the previous example, that means 
SelectedItem provides a StackPanel object. 
When manually placing items in a list, it’s up to you whether you want to place the items in directly 
or explicitly wrap each one in a ListBoxItem object. The second approach is often cleaner, albeit more 
tedious. The most important consideration is to be consistent. For example, if you place StackPanel 
objects in your list, the ListBox.SelectedItem object will be a StackPanel. If you place StackPanel objects 
wrapped by ListBoxItem objects, the ListBox.SelectedItem object will be a ListBoxItem, so code 
accordingly. And there’s a third option—you can place data objects inside your ListBox and use a data 
template to display the properties you want. Chapter 20 has more about this technique. 
The ListBoxItem offers a little bit of extra functionality from what you get with directly nested 
objects. Namely, it defines an IsSelected property that you can read (or set) and a Selected and 
Unselected event that tells you when that item is highlighted. However, you can get similar functionality 
using the members of the ListBox class, such as the SelectedItem and SelectedIndex properties and the 
SelectionChanged event. 
 Note  The ListBox has support for virtualization, thanks to the way it uses VirtualizingStackPanel to lay out 
items. This means that the ListBox creates ListBoxItem objects only for the items that are currently in view, which 
allows it to display massive lists with tens of thousands of items without consuming ridiculous amounts of memory 
or slowing its performance down to a crawl. As the user scrolls, the existing set of ListBoxItem objects is reused 
with different data to show the appropriate items. List controls that don’t support virtualization (which includes 
every control other than the ListBox and the DataGrid) load and scroll much more slowly when they’re packed full 
of items. 
The ComboBox 
The ComboBox is similar to the ListBox control. It holds a collection of ComboBoxItem objects, which 
are created either implicitly or explicitly. As with the ListBoxItem, the ComboBoxItem is a content 
control that can contain any nested element. Unlike combo boxes in the Windows world, you can’t type 
in the Silverlight ComboBox control to select an item or edit the selected value. Instead, you must use 
the arrow keys or the mouse to pick from the list. 
The key difference between the ComboBox and ListBox classes is the way they render themselves in 
a window. The ComboBox control uses a drop-down list, which means only one item can be selected at a 
time. 
One ComboBox quirk is the way it sizes itself when you use automatic sizing. The ComboBox 
widens itself to fit its content, which means that it changes size as you move from one item to the next. 
Unfortunately, there’s no easy way to tell the ComboBox to take the size of its largest contained item. 
Instead, you may need to supply a hard-coded value for the Width property, which isn’t ideal. 
Silverlight 5 adds a minor refinement to the ComboBox control, with support for the type-ahead 
feature. With type-ahead, you can jump to an item by typing the first few letters of its name. This works 
www.it-ebooks.info
C# PDF Text Search Library: search text inside PDF file in C#.net
Add necessary references: Description: Search specified string from all the PDF pages. eg: The first page is 0. 0
add pages to pdf preview; add page number to pdf preview
C# PDF delete text Library: delete, remove text from PDF file in
Add necessary references: RasterEdge.Imaging.Basic.dll. matchString, The string wil be deleted from PDF file, -. 0
add page number to pdf document; adding page numbers in pdf file
CHAPTER 5  ELEMENTS 
173 
when the combo box is open or closed, although it’s easiest when open (as you can see the full list of 
items). For example, imagine a list that includes two items that start with the letter E—Elephant and 
Elevator. If the user types in the letter E, Silverlight automatically selects the first item (Elephant). If the 
user types in Elev, however, the selection jumps to the next item (Elevator). 
 Note  The ComboBox type-ahead feature is a very basic shortcut that lets a user quickly select an item using 
the keyboard. If you want a more powerful autocomplete feature, which lets you control how matches are made 
he ComboBox with 
the AutoCompleteBox control described later in this chapter. 
The TabControl 
You’re no doubt familiar with the TabControl, a handy container that condenses a large amount of user 
interface into a set of tabbed pages. In Silverlight, the TabControl is an items control that holds one or 
more TabItem elements. 
Like several of Silverlight’s more specialized controls, the TabControl is defined in a separate 
assembly. When you add it to a page, Visual Studio will add a reference to the 
System.Windows.Controls.dll assembly and map a new XML namespace, like this one: 
<UserControl xmlns:controls= 
"clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" 
... > 
To use the TabControl, you must fill it with one or more TabItem elements. Each TabItem 
represents a separate page. Because the TabItem is a content control, it can hold another Silverlight 
element (like a layout container). 
Here’s an example of a TabControl that includes two tabs. The first tab holds a StackPanel with 
three check boxes: 
<controls:TabControl> 
<controls:TabItem Header="Tab One"> 
<StackPanel Margin="3"> 
<CheckBox Margin="3" Content="Setting 1"></CheckBox> 
<CheckBox Margin="3" Content="Setting 2"></CheckBox> 
<CheckBox Margin="3" Content="Setting 3"></CheckBox> 
</StackPanel> 
</controls:TabItem> 
<controls:TabItem  Header="Tab Two"> 
... 
</controls:TabItem> 
</controls:TabControl> 
The TabItem holds its content (in this example, a StackPanel) in the TabItem.Content property. 
Interestingly, the TabItem also has another property that can hold arbitrary content—the Header. In the 
previous example, the Header holds a simple text string. However, you just as readily fill it with graphical 
content or a layout container that holds a whole host of elements, as shown here: 
<controls:TabControl> 
www.it-ebooks.info
C# PDF Text Highlight Library: add, delete, update PDF text
200F); annot.EndPoint = new PointF(300F, 400F); // add annotation to The string wil be highlighted from PDF file, 0
add pages to pdf online; add page numbers pdf
C# Word - Split Word Document in C#.NET
your page number is set as 1, then the two output Word files will contains the first page and the later three pages respectively. C# DLLs: Split Word File. Add
add page numbers to pdf in reader; add pages to pdf in preview
CHAPTER 5  ELEMENTS 
174 
<controls:TabItem> 
<controls:TabItem.Header> 
<StackPanel> 
<TextBlock Margin="3">Image and Text Tab Title</TextBlock> 
<Image Source="happyface.jpg" Stretch="None" /> 
</StackPanel> 
</controls:TabItem.Header> 
<StackPanel Margin="3"> 
<CheckBox Margin="3" Content="Setting 1"></CheckBox> 
<CheckBox Margin="3" Content="Setting 2"></CheckBox> 
<CheckBox Margin="3" Content="Setting 3"></CheckBox> 
</StackPanel> 
</controls:TabItem> 
<controls:TabItem  Header="Tab Two"> 
... 
</controls:TabItem> 
</controls:TabControl> 
Figure 5-12 shows the somewhat garish result. 
Figure 5-12. An exotic tab title 
www.it-ebooks.info
CHAPTER 5  ELEMENTS 
175 
Like the ListBox, the TabControl includes a SelectionChanged event that fires when the visible tab 
changes. It also has a SelectedIndex property and a SelectedItem property, which allow you to determine 
or set the current tab. The TabControl adds a TabStripPlacement property, which allows you to make the 
tabs appear on the side or bottom of the tab control, rather than their normal location at the top. 
Text Controls 
Silverlight includes a standard TextBox control and several more specialized controls that derive from 
TextBox, including a PasswordBox (for entering text that should be concealed), an AutoCompleteBox 
(which shows a drop-down list of suggestions as the user types), and a RichTextBox (which allows richly 
formatted text, links, and pictures). You’ll learn about all these variants in the following sections. 
The TextBox 
The basic TextBox stores a string, which is provided by the Text property. You can change the alignment 
of that text using the TextAlignment property, and you can use all the properties listed in Table 5-2 to 
control the font of the text inside the text box. The TextBox also supports many of the features of its 
counterpart in the Windows world, including scrolling, text wrapping, clipboard cut-and-paste, and 
selection. 
Ordinarily, the TextBox control stores a single line of text. (You can limit the allowed number of 
characters by setting the MaxLength property.) However, you can allow text to span multiple lines in two 
ways. First, you can enable wrapping using the TextWrapping property. Second, you can allow the user 
to insert line breaks with the Enter key by setting the AcceptsReturn property to true. 
Sometimes, you’ll create a text box purely for the purpose of displaying text. In this case, set the 
IsReadOnly property to true to prevent editing. This is preferable to disabling the text box by setting 
IsEnabled to false because a disabled text box shows grayed-out text (which is more difficult to read) and 
does not support selection (or copying to the clipboard). 
As you already know, you can select text in any text box by clicking and dragging with the mouse or 
holding down Shift while you move through the text with the arrow keys. The TextBox class also gives 
you the ability to determine or change the currently selected text programmatically, using the 
SelectionStart, SelectionLength, and SelectedText properties.  
SelectionStart identifies the zero-based position where the selection begins. For example, if you set 
this property to 10, the first selected character is the 11th character in the text box. Selection Length 
indicates the total number of selected characters. (A value of 0 indicates no selected characters.) Finally, 
the SelectedText property allows you to quickly examine or change the selected text in the text box. 
You can react to the selection being changed by handling the SelectionChanged event. Here’s an 
example that reacts to this event and displays the current selection information: 
private void txt_SelectionChanged(object sender, RoutedEventArgs e) 
if (txtSelection == nullreturn
txtSelection.Text = String.Format( 
"Selection from {0} to {1} is \"{2}\""
txt.SelectionStart, txt.SelectionLength, txt.SelectedText); 
Figure 5-13 shows the result. 
www.it-ebooks.info
CHAPTER 5  ELEMENTS 
176 
Figure 5-13. Selecting text 
PROGRAMMATICALLY USING THE CLIPBOARD 
Silverlight includes a Clipboard class in the System.Windows namespace. It provides three static methods 
that you can call in code to work with Windows clipboard: 
• GetText(): This method retrieves any Unicode text that’s currently on the clipboard 
(as a string). Other types of data that could be on the clipboard, such as images 
and files, are not available to Silverlight applications. 
• SetText(): This method places the text you specify on the clipboard. 
• ContainsText(): This method returns true if the clipboard contains Unicode text 
content. 
(like a mouse click or a 
key press). The first time your code attempts to use the clipboard with the GetText() or SetText() method, a 
dialog box will appear asking for clipboard access. If the user clicks Yes, this message won’t appear for 
the rest of the session (but it will reappear the next time you run this or another Silverlight application and 
attempt to use clipboard again). If the user clicks No, the GetText() or SetText() method will throw a 
SecurityException, which you must catch in your code. 
www.it-ebooks.info
CHAPTER 5  ELEMENTS 
177 
The PasswordBox 
Silverlight includes a separate control called the PasswordBox to deal with password entry. The 
PasswordBox looks like a TextBox, but it displays a string of circle symbols to mask the characters inside. 
You can choose a different mask character by setting the PasswordChar property, and you can set (or 
retrieve) the text inside through the Password property. The PasswordBox does not provide a Text 
property. 
Additionally, the PasswordBox does not support the clipboard. This means the user can’t copy the 
text it contains using shortcut keys, and your code can’t use properties like SelectedText. 
 Note  The WPF PasswordBox uses in-memory encryption to ensure that passwords can’t be retrieved in certain 
types of exploits (like memory du
contents in the same way as the ordinary TextBox. 
The AutoCompleteBox 
The AutoCompleteBox fuses a text entry with a drop-down list of suggestions. This feature is a common 
technique on the Web, powering everything from the search box on the Google homepage to the 
Internet Explorer address bar. 
The Silverlight implementation is a surprisingly powerful control that gives you several ways to 
decide what items should appear in the drop-down list. The simplest approach is to start with an 
ordinary AutoCompleteBox: 
<input:AutoCompleteBox x:Name="txtMonth"></input:AutoCompleteBox> 
When you add an AutoCompleteBox from the toolbox, Visual Studio creates an XML alias named 
input: 
<UserControl xmlns:input= 
... > 
Once you’ve added an AutoCompleteBox, create an array or list that holds the collection of possible 
suggestions (in no particular order), and apply this collection to the AutoCompleteBox.ItemsSource 
property. Typically, you’d perform this step when the page first loads by adding your code to the page 
constructor or handling the UserControl.Loaded event. 
Here’s an example that uses the set of 12 calendar months: 
string[] monthList = {"January""February""March""April"
"May""June""July""August""September"
"October""November""December"}; 
txtMonth.ItemsSource = monthList; 
That’s enough to get the default behavior. When the user types a letter in the box at runtime, a drop-
down list of potential matches will appear, in alphabetical order (Figure 5-14). To select an item (and 
avoid typing the whole text in by hand), you can click it with the mouse or cursor down to it with the 
arrow keys.  
www.it-ebooks.info
CHAPTER 5  ELEMENTS 
178 
 Note  The AutoCompleteBox offers suggestions, but it doesn’t impose rules. There is no easy way to constrain 
users so that they can’t deviate from the list of suggestions. 
There’s one other way for the AutoCompleteBox to behave. If you set IsTextCompletionEnabled to 
true, the AutoCompleteBox automatically fills in the text box as the user types. For example, if the user 
types J in the month example, the AutoCompleteBox finds the first matching month and fills in anuary
The new filled-in text is highlighted, which means that it will be overwritten if the user continues to type 
(or deleted if the user presses the Delete or Backspace key). Figure 5-14 compares the difference. 
 Note  When you read the AutoCompleteBox.Text property, you get exactly the text that’s currently displayed in 
the AutoCompleteBox. If you’ve set IsTextCompletionEnabled to true, you also get any text that’s automatically 
inserted as part of a match. 
Figure 5-14. Months that start with J 
Filter Mode 
Ordinarily, the AutoCompleteBox filters out the list of bound items by comparing the start of each one 
with the text that’s been typed in so far. However, you can change this behavior by setting the 
FilterMode property. It takes one of the values from the AutoCompleteFilterMode enumeration. The 
most useful ones are described in Table 5-4. 
www.it-ebooks.info
Documents you may be interested
Documents you may be interested