Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №7.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.19 Mб
Скачать

InitializeComponent();

}

public event TextChangedEventHandler TextChanged;

public event ClickEventHandler Click;

public string Text

{

get { return (string)GetValue(TextProperty); }

set

{

SetValue(TextProperty, value);

}

}

public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(UserControl1), new FrameworkPropertyMetadata("Строка поиска", new PropertyChangedCallback(OnTextChanged)));

private static void OnTextChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)

{

(obj as UserControl1).UpdateText (args.NewValue.ToString());

}

private void UpdateText(string NewText)

{

textBox1.Text = NewText;

TextChanged(this, NewText);

}

private void textBox1_TextChanged(object sender, TextChangedEventArgs e)

{

SetValue(TextProperty, textBox1.Text);

}

private void button1_Click(object sender, RoutedEventArgs e)

{

Click();

}

}

  1. Перейти в редактор XAML-кода и в строке, которая начинается с <Button добавить ссылку на обработчик, написав следующее

Click="button1_Click"

Т.о. видоизмененная строка будет иметь вид:

<Button Click="button1_Click" Name="button1" Margin="0,0,11,0" Grid.Column="1" FontSize="14">

  1. В редакторе XAML-кода и в строке, которая начинается с <TextBox добавить ссылку на обработчик, написав следующее

TextChanged="textBox1_TextChanged"

Т.о. видоизмененная строка будет иметь вид:

<TextBox TextChanged="textBox1_TextChanged" Margin="0,0,11,0" Name="textBox1" FontSize="14" BorderThickness="3">

  1. Построение пользовательского составного элемента управления завершено. Для его компиляции и сборки необходимо выполнить команду из меню Build->Build WpfControlLibrary1.

4 Построение приложения WinForms для демонстрации хостинга wpf-элемента управления

  1. Создайте проект Windows Forms Application с именем WinFormsApp1.

  2. Добавить к текущему solution проект с разработанным составным элементом управления. Для этого перейти в Solution Explorer, щелкнуть правой кнопкой мыши по строке «Solution WinFormsApp1 (1 project, в появившемся контекстном меню выбрать пункт Add-> Existing ProjectДалее выбрать файл проекта созданного элемента управления (WpfControlLibrary1.csproj).

  3. После этого в Toolbox появится ссылка на добавленный элемент управления (рис. 7.9):

    Рисунок 7.9 – Пользовательский элемент управления в Toolbox

  4. Добавьте элемент UserControl1 на форму и растяните его, как показано на рисунке 7.10:

Рисунок 7.10 – Работа с пользовательским элементов управления

Фактически, на форму был добавлен экземпляр класса ElementHost, который отвечает за интеграцию WPF-элементов в приложение WinForms. Добавление созданного элемента управления можно было выполнить и другим способом: добавить на форму экземпляр класса ElementHost и затем в нем подключить UserControl1 (рис. 7.11).

Рисунок 7.11 – Второй способ подключения пользовательского элемента управления

  1. Перейдите к редактированию кода и подключите UserControl1 в инструкции using:

using WpfControlLibrary1;

  1. Задайте указатель на созданный элемент управления в классе своего приложения, т.е. добавьте следующую строку перед конструктором:

UserControl1 wpf_control;

  1. В конструктор внести следующие изменения:

public Form1()

{