Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
WPF-практика 3 Текст.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
1.59 Mб
Скачать

Использование дополнительных шрифтов

Иногда нет уверенности в том, что на компьютере пользователя есть нужные шрифты, с использованием которых программист разрабатывает интерфейс. В таком случае шрифты можно поставлять вместе с приложением.

  • Перейдите в раздел "Панель управления", откройте папку " Шрифты " и перетащите мышью шрифт, например, "Monotype Corsiva" в какую-нибудь папку (файл шрифта уже есть в прилагаемом каталоге Source )

  • В панели Solution Explorer создайте в корне проекта папку Fonts, выделите ее и добавьте командой Project/Add Existing Item файл шрифта MTCORSVA.TTF

  • Добавьте в файл Window1.xaml новую вкладку со следующей разметкой

<!--Вкладка TextBlock4-->

<!-- Элемент TextBlock с дополнительным шрифтом -->

<TabItem Header="TextBlock4">

<Grid Background="White">

<Grid.RowDefinitions>

<RowDefinition Height="Auto" />

<RowDefinition Height="*" />

</Grid.RowDefinitions>

<TextBlock

FontFamily="Fonts/MTCORSVA.TTF#Monotype Corsiva"

FontSize="20"

TextWrapping="Wrap"

TextAlignment="Justify"

Margin="10"

ToolTip="Элемент TextBlock с дополнительным шрифтом">

Шрифт для этого текста подключен явно и поставляется

вместе с приложением на тот случай, если у бедного

пользователя компьютер окажется еще беднее.

</TextBlock>

<TextBlock Grid.Row="1" Margin="10" TextWrapping="Wrap">

В этом блоке текста используется шрифт по умолчанию и

нет всплывающей подсказки ToolTip, а в верхнем блоке есть

</TextBlock>

</Grid>

</TabItem>

  • Запустите приложение - должно получиться следующее

  • Изучите приведенный код

Элементы TextBox и PasswordBox

  • Добавьте к проекту следующую вкладку со скриптовым кодом

<!--TextBox и PasswordBox-->

<TabItem Header="TextBox" Selector.IsSelected="True">

<StackPanel VerticalAlignment="Center" Margin="10">

<TextBlock HorizontalAlignment="Center">

<Run FontSize="14" FontWeight="Bold">

Элементы PasswordBox и TextBox

</Run>

</TextBlock>

<Grid Height="20" />

<Grid>

<Grid.ColumnDefinitions>

<ColumnDefinition Width="Auto" />

<ColumnDefinition />

</Grid.ColumnDefinitions>

<TextBlock Grid.Column="0" Text="Поле PasswordBox: " VerticalAlignment="Center" />

<PasswordBox Grid.Column="1" Name="passwordBox" />

</Grid>

<Grid Height="20" />

<Grid>

<Grid.ColumnDefinitions>

<ColumnDefinition Width="Auto" />

<ColumnDefinition />

</Grid.ColumnDefinitions>

<TextBlock Grid.Column="0" Text="Поле TextBox: " VerticalAlignment="Center" />

<TextBox Grid.Column="1" Name="textBox"></TextBox>

</Grid>

<Grid Height="20" />

<Grid HorizontalAlignment="Center">

<Grid.ColumnDefinitions>

<ColumnDefinition />

<ColumnDefinition Width="5" />

<ColumnDefinition />

</Grid.ColumnDefinitions>

<Button Grid.Column="0" Content="Показать" Click="Button_Click" />

<ToggleButton Grid.Column="2" Name="toggleButton" Content="EnabledPassword"

Checked="toggleButton_Checked" Unchecked="toggleButton_Checked"/>

</Grid>

</StackPanel>

</TabItem>

  • Выделенную в разметке кнопок регистрацию обработчиков наберите вручную

  • Добавьте в кодовую часть следующие обработчики

private void Button_Click(object sender, RoutedEventArgs e)

{

textBox.Text = passwordBox.Password;

}

bool flagState = true;

Brush color;

private void toggleButton_Checked(object sender, RoutedEventArgs e)

{

// Сохраняем первоначальный цвет кнопки

if (flagState)

{

color = toggleButton.Background;

flagState = false;

}

if (toggleButton.IsChecked == true)

{

passwordBox.IsEnabled = false;

toggleButton.Background = Brushes.Red;

}

else

{

passwordBox.IsEnabled = true;

toggleButton.Background = color;

}

}

  • Запустите приложение, поизменяйте размер окна и разберитесь с кодом

Результат будет таким