Читайте также: |
|
Silverlight 5 предлагает несколько интересных возможностей при работе с текстом. Так, элементы управления Control, TextBlock и TextElement, имеют новое свойство CharacterSpacing. Это свойство позволяет установить расстояние между символами внутри текста.
Свойство LineHeight позволяет установить ширину строки (можно интерпретировать, как расстояние между строками) и определено в таких элементах как Block, TextBlock, TextBox и RichTextBox. Для элемента RichTextBox можно также задать стратегию с помощью свойства LineStackingStrategy. На рис. 5.4 пример текста внутри элемента TextBlock с расстоянием между строками 30 и расстоянием между символами – 200:
Рисунок 5.4. Пример возможности TextBlock в Silverlight 5.
Наконец, Silverlight 5 стал поддерживать два новых текстовых элемента, это RichTextBlock и RichTextBlockOverflow. Эти элементы аналогичны элементам RichTextBox и RichTextBoxOverflow, но позволяют отображать текст только на чтение.
Рассмотрим небольшой пример с элементом RichTextBlockOverflow:
<StackPanel x:Name="LayoutRoot" Background="White"
Orientation="Horizontal" VerticalAlignment="Top">
<RichTextBlock
Width="250" FontSize="16" OverflowContentTarget=
"{Binding ElementName=SecondBox}">
<Paragraph>
В лесу родилась елочка,
</Paragraph>
........ //повторить 20 разJ
</RichTextBlock>
<RichTextBlockOverflow Width="250" Name="SecondBox">
</RichTextBlockOverflow>
</StackPanel>
Результат работы этого кода показан на рис. 5.5:
Рисунок 5.5. Пример с элементом RichTextBlockOverflow в Silverlight 5.
Как видно, RichTextBlockOverflow может отображать текст, который не «вмещается» в основной элемент RichTextBlock. Благодаря таким элементам мы можем размещать текст в 2, 3 и более колонках (или реализовывать более сложные сценарии).
Печать
Silverlight 5 позволяет теперь не только реализовать растровую, но и векторную печать. Для этих целей используется все тот же метод Print класса PrintDocument, который осуществляет попытку печати в векторном формате, а в случае неудачи (принтер не поддерживает), перейти к печати в растровом виде. Растровую печать можно инициировать с помощью нового метода PrintBitmap.
P/Invoke
В документации эта возможность пока не описана, но она уже реализована – возможность вызова методов Windows API из Silverlight приложений, обладающих повышенными полномочиями. Причем речь идет о приложениях, которые работают как в браузере, так и вне браузера. Поскольку вызов нативных функций в.NET обычно осуществляется с помощью атрибута DllImport. Запустим приложение с повышенными привилегиями:
public partial class MainPage: UserControl
{
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern int MessageBox(IntPtr hWnd,
String text, String caption, uint type);
public MainPage()
{
MessageBox(new IntPtr(0), "Hello World!", "Hello Dialog", 0);
InitializeComponent();
}
}
На экране, поверх браузера вы увидите стандартный MessageBox.
Дата добавления: 2015-08-13; просмотров: 59 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Повышение полномочий для приложений в браузере | | | Отладка при связывании с данными |