Применение вложенных ресурсов

Для тренировки воспользуемся способом хранения и извлечения некоторых сообщений в ресурсах сборки.

  • В панели Solution Explorer вызовите контекстное меню для узла проекта и добавьте командой Add/New Item текстовый файл с любым именем (оставьте по умолчанию)

 

>

  • В панели Solution Explorer вызовите контекстное меню на созданном текстовом файле и командой Rename присвойте ему новое имя StringTable.ru-ru.resText

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

  • В панели Solution Explorer выделите файл StringTable.ru-ru.resText и в панели Properties установите для него следующие директивы:

 

  • Заполните файл StringTable.ru-ru.resText следующими парами ключ=значение
GotoErrorDialogTitle=Go To Line ErrorGotoErrorMsgFormat=Текстовое поле должно\nсодержать целое числоGotoErrorMsgEmpty=Введите число в текстовое полеGotoErrorMsgRange=Выход за границы диапазона
  • Заполните файл GoToDialog.xaml.cs следующим процедурным кодом
using System;using System.Collections.Generic;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Shapes; // Дополнительные подключения пространств именusing System.Resources;using System.Reflection; namespace Notepad1{ public partial class GoToDialog : Window { public GoToDialog() { InitializeComponent(); // Сохраняем первое значение Label _rangeOrigin = _rangeNumber.Content.ToString(); } // Объявляем событие для прослушивания в основном окне public event EventHandler GotoActivate; // Закрытые поля класса int _lineNumber = 0; int _maxLineNumber; ResourceManager res = new ResourceManager("Notepad1.StringTable", Assembly.GetExecutingAssembly()); String _rangeOrigin; // Свойства доступа public int LineNumber { get { return _lineNumber; } set { _lineNumber = value; _lineNumberTextBox.Text = _lineNumber.ToString(); } } public int MaxLineNumber { get { return _maxLineNumber; } set { _maxLineNumber = value; } } private void OnActivated(object sender, EventArgs e) { // Если существуют обработчики, инициируем событие if (GotoActivate != null) GotoActivate(this, EventArgs.Empty); _rangeNumber.Content = _rangeOrigin + String.Format(" (1 - {0}):", _maxLineNumber); _lineNumberTextBox.Focus(); _lineNumberTextBox.SelectAll();// Выделяем содержимое } private void OkClicked(object sender, RoutedEventArgs e) { // Не закрывать диалог, пока есть ошибки if (string.IsNullOrEmpty(_lineNumberTextBox.Text)) { MessageBox.Show(res.GetString("GotoErrorMsgEmpty"), res.GetString("GotoErrorDialogTitle")); return; } if (!int.TryParse(_lineNumberTextBox.Text, out _lineNumber)) { MessageBox.Show(res.GetString("GotoErrorMsgFormat"), res.GetString("GotoErrorDialogTitle")); return; } if (LineNumber > _maxLineNumber || LineNumber <= 0) { MessageBox.Show(res.GetString("GotoErrorMsgRange"), res.GetString("GotoErrorDialogTitle")); return; } this.DialogResult = true; this.Close(); } private void CancelClicked(object sender, RoutedEventArgs e) { this.DialogResult = false; this.Close(); } }}

Обратите внимание на то, как мы в коде извлекаем ресурсы, вложенные (Embedded) ранее в текстовый файл StringTable.ru-ru.resText.








Дата добавления: 2015-04-15; просмотров: 740;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.