Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Windows presentation foundation with - MacDonald M.

MacDonald M. Windows presentation foundation with — Вильямс , 2008. — 928 c.
ISBN 978-5-8459-1429-3
Скачать (прямая ссылка): wpfwindowspresente2008.pdf
Предыдущая << 1 .. 138 139 140 141 142 143 < 144 > 145 146 147 148 149 150 .. 473 >> Следующая

Следует иметь в виду, что в случае создания обычного приложения XBAP, которое будет развертываться в Web, уже известно, что разрешения FileIOPermission для локального жесткого диска (или любого другого места) не будет, а это значит, что применять показанный здесь условный код нет никакого смысла. Вместо этого лучше сделать так, чтобы код сразу же переходил к классам изолированного хранилища.
Совет. Объем данных, умещающихся в изолированном хранилище, можно увеличить, упаковав свои операции записи данных в файл с помощью 0е?1аЬе31геаш или GZipStream. Оба этих типа определены в пространстве имен System.IO.Compression и применяют сжатие для сокращения количества требуемых байт.
Имитация диалоговых окон с помощью элемента управления Popup
Еще одной ограниченной функциональной возможностью в XBAP является открытие вторичного окна. Во многих случаях вместо отдельных окон можно будет использовать навигацию и множество страниц и не вспоминать об этой возможности.
Однако в некоторых случаях удобнее будет использовать именно всплывающее окно для отображения какого-то сообщения или суммарных данных. В автономных приложениях Windows для этой цели применяется модальное диалоговое окно. В приложениях XBAP для этой цели можно использовать элемент управления Popup, о котором уже говорилось в главе 7.
В целом все довольно просто. Сначала нужно определить элемент управления Popup в своем коде разметки, установив для его свойства StaysOpen значение true, чтобы он оставался в открытом состоянии до тех пор, пока не будет закрыт. (Использовать свойство PopupAnimation и AllowsTransparency не имеет никакого смысла, поскольку на Web-странице они все равно работать не будут.) А затем следует включить подходящие кнопки вроде OK и Cancel (Отмена) и установить для свойства Placement значение Center, чтобы всплывающее окно появлялось посередине окна браузера.
Ниже показан простой пример.
<Popup Name="dialogPopUp" StaysOpen="True" Placement="Center" MaxWidth="200"> <Border>
<Border.Background>
<LinearGradientBrush>
Book_Pro_WPF-2.mdb 285 19.05.2008 18:10:12
286 Глава 9
<GradientStop Color="AliceBlue" Offset="1"></GradientStop>
<GradientStop Color="LightBlue" Offset="0"></GradientStop> </LinearGradientBrush>
</Border.Background>
<StackPanel Margin="5" Background="White">
<TextBlock Margin="10" TextWrapping="Wrap">
Please enter your name.
</TextBlock>
<TextBox Name="txtName" Margin="10"></TextBox>
<StackPanel Orientation="Horizontal" Margin="10">
<Button Click="dialog_cmdOK_Click" Padding="3" Margin="0,0,5,0">OK</Button> <Button Click="dialog_cmdCancel_Click" Padding="3">Cancel</Button> </StackPanel>
</StackPanel>
</Border>
</Popup>
В подходящий момент (например, при выполнении щелчка на кнопке) нужно отключить остальную часть пользовательского интерфейса и отобразить элемент Popup. Отключить пользовательский интерфейс можно, установив для свойства IsEnabled какого-то высокоуровневого контейнера, подобного StackPanel или Grid, значение false. (Также еще можно установить значение gray для свойства Background страницы, что будет привлекать внимание пользователя к окну Popup.) Чтобы отобразить элемент управления Popup, нужно просто установить для его свойства IsVisible значение true.
Ниже показан обработчик событий, отображающий элемент Popup, который был определен ранее:
private void cmdStart_Click(object sender, RoutedEventArgs e)
{
DisableMainPage();
}
private void DisableMainPage()
{
mainPage.IsEnabled = false; this.Background = Brushes.LightGray; dialogPopUp.IsOpen = true;
}
При выполнении пользователем щелчка на кнопке OK или Cancel (Отмена), нужно закрыть окно Popup путем установки для его свойства IsVisible значения false и снова включить остальную часть пользовательского интерфейса:
private void dialog_cmdOK_Click(object sender, RoutedEventArgs e)
{
// Копируем имя из элемента Popup в основную страницу. lblName.Content = "You entered: " + txtName.Text;
EnableMainPage();
}
private void dialog_cmdCancel_Click(object sender, RoutedEventArgs e)
{
EnableMainPage();
}
private void EnableMainPage()
{
mainPage.IsEnabled = true; this.Background = null; dialogPopUp.IsOpen = false;
}
Book_Pro_WPF-2.indb 286 19.05.2008 18:10:13
Страницы и навигация 287
На рис. 9.16 показан этот элемент Popup в действии.
'в D:\Code\ProWPF\Chapter09\XBAP\birc\D... H LM I S3
& D:\Code\Pro WPF\Chapter?9\XBAP\bin\D... ® D:\Code\Pro V
X Google
? '? ^XBAP.xbap fi 1 - o ” :
Click the button to show a Popup that looks like a modal window.
Please enter your name.
Simone]
1 OK 1 Cancel


Computer 1 Protected Mode: Off
w 11*] D:\Code\Pro V ? | *1 x| Google
? * S XBAP.xbap ?t EJ ’ ‘
Click the button to show a Popup that looks like a modal window.
I Start I You entered: Simone
*. Computer I Protected Mode: Off
Рис. 9.16. Имитация диалогового окна с помощью элемента управления Popup
Подход с применением элемента управления Popup для создания такого обходного пути имеет одно серьезное ограничение. Для гарантии того, что элемент управления Popup не сможет использоваться для фальсификации настоящих системных диалоговых окон, размер его окна ограничивается размером окна браузера. При наличии большого окна Popup и маленького окна браузера это может означать усечение части содержимого. Одно из решений, которое демонстрируется в примере кода для этой главы — упаковать все содержимое элемента управления Popup в ScrollViewer, установив для свойства VerticalScrollBarVisibility значение Auto.
Предыдущая << 1 .. 138 139 140 141 142 143 < 144 > 145 146 147 148 149 150 .. 473 >> Следующая