Кнопки и текстовые поля

Последнее обновление: 31.10.2015

TextBlock

Элемент TextBlock служит для вывода простой текстовой информации, например, надписи, метки:

<StackPanel>
    <TextBlock>Текст1</TextBlock>
    <TextBlock Text="Текст2" />
</StackPanel>

Для изменения параметров отображаемого текста данный элемент имеет такие свойства, как LineHeight, TextWrapping и TextAllignment.

Свойство LineHeight позволяет указывать высоту строк.

Свойство TextWrapping позволяет переносить текст при установке этого свойства TextWrapping="Wrap". По умолчанию это свойство имеет значение NoWrap, поэтому текст не переносится.

Свойство TextAllignment выравнивает текст по центру (значение Center), правому (Right) или левому краю (Left): <TextBlock TextAlignment="Right">

Для оформления текста используется свойство TextDecorations, например, если TextDecorations="Underline", то текст будет подчеркнут.

Если нам вдруг потребуется перенести текст на другую строку, то тогда мы можем использовать элемент LineBreak:

<TextBlock>
	Однажды в студеную зимнюю пору
    <LineBreak />
    Я из лесу вышел
</TextBlock>

Button

Элемент Button представляет стандартную кнопку:

<Button x:Name="button1" Content="Кнопка" Width="60" Height="30" Background="Red" />

Как правило, кнопки служат для инициирования пользователем какого-либо действия по нажатию. Для обработки нажатия надо привязать к событию Click кнопки обработчик события. Например, код xaml:

<Button x:Name="button1" Content="Кнопка" Width="60" Height="30" Background="Red" Click="button1_Click" />

Тогда в файле отделенного кода для данной страницы надо прописать обработчик:

private void button1_Click(object sender, RoutedEventArgs e)
{
    // выполнение действий по нажатию кнопки
}

Так как Button является элементом управления содержимым и имеет свойство Content, мы можем задать более сложные композиции кнопок. Например:

<Button x:Name="button1" Width="220" FontSize="26" Background="Red" VerticalAlignment="Top">
    <StackPanel>
        <TextBlock>Многострочная</TextBlock>
        <TextBlock>кнопка</TextBlock>
        <TextBox></TextBox>
    </StackPanel>
</Button>

Однако такой подход имеет ограничения, так как поле для ввода текста будет недоступно, а при попутке ввести текст, будет инициироваться нажатие кнопки.

TextBox

Элемент TextBox служит для ввода текстовой информации.

Он также, как и TextBlock, имеет свойства TextWrapping, TextAllignment и TextDecorations.

С помощью свойства MaxLength можно задать предельное количество вводимых символов.

Свойство PlaceholderText задает текст по умолчанию, который отображается в поле до ввода в него символов.

<StackPanel>
    <TextBox MaxLength="250" TextChanged="TextBox_TextChanged" PlaceholderText="Hello World!" />
    <TextBlock x:Name="textBlock1" />
</StackPanel>

В коде C# мы можем обработать событие изменения текста:

private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
	TextBox textBox = (TextBox)sender;
	textBlock1.Text=textBox.Text;
}

По умолчанию, если вводимый текст превышает установленные границы поля, то текстовое поле растет, чтобы вместить весь текст. Но визуально это не очень хорошо выглядит. Поэтому, как и в случае с TextBlock, мы можем перенести непомещающийся текст на новую строку, установив свойство TextWrapping="Wrap".

Возможно, при создании приложения нам потребуется сделать текстовое поле недоступным для ввода (на время в зависимости от условий или вообще), тогда для этого нам надо установить свойство IsReadOnly="True".

PasswordBox

Элемент предназначен для ввода парольной информации. По сути это тоже текстовое поле, только для ввода символов используется маска. Свойство PasswordChar устанавливает символ маски, отображаемый при вводе пароля. Свойство Password устанавливает парольную строку, отображаемую по умолчанию при загрузке окна приложения.

<StackPanel>
    <TextBlock Text="Введите пароль:" FontSize="30" />
    <PasswordBox  PasswordChar="*" />
</StackPanel>
PasswordBox на Windows Phone 8.1
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850