Главная » Разработка для Windows Phone 7 » Простой Button

0

Стандартная кнопка Silverlight намного более гибкая, чем кнопки ApplicationBar, и при этом с ней легче работать. Нет ничего проще, чем поместить Button в сетку для содержимого:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

<Button Content="Click me!" /> </Grid>

По умолчанию Button заполняет весь Grid:

Эта кнопка обведена простой белой рамкой и выводит на экран строку текста, которая задана в ее свойстве Content. Если поместить Button в горизонтальный StackPanel, ее ширина будет точно такой, какая необходима для вмещения ее содержимого. Противоположный эффект имеет место, если изменить ориентацию StackPanel на Vertical. Или можно задать свойствам HorizontalAlignment и VerticalAlignment любое другое значение, отличное от Stretch.

Очевидно, что обычный Button был немного изменен для телефона. В нем немного расширена область вокруг рамки для создания большей мишени для касания.

В роли рамки в Button фактически выступает Border, и содержимым Button (в данном примере) является TextBlock. Ранее я упоминал, что класс Control определяет ряд свойств, которые обычно ассоциированы с Border и TextBlock. Некоторые из этих свойств можно задать следующим образом:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <Button Content="Click me!" FontSize="4 8" FontStyle="Italic" Foreground="Red" Background="Blue" BorderThickness="10" BorderBrush="Yellow" Padding="2 0"

HorizontalAlignment="Center" VerticalAlignment="Center" />

</Grid>

Как можно надеяться (или, возможно, опасаться), эти настройки будут отражены во внешнем виде кнопки:

Класс также определяет свойства HorizontalContentAlignment (Выравнивание содержимого по горизонтали), VerticalContentAlignment (Выравнивание содержимого по вертикали) и Padding, которые можно задать следующим образом:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <Button Content="Click me!" Padding="50 100"

HorizontalContentAlignment="Right" VerticalContentAlignment="Bottom" />

</Grid>

Теперь содержимое располагается в нижнем правом углу, но отстоит на 50 пикселов от правого и на 100 пикселов от нижнего края кнопки:

Класс Control описывает свойство IsEnabled. Если ему задано значение false, Button становится тусклым (неактивным) и не реагирует на касания.

Практически всегда требуется задать обработчик события Click класса Button, что позволяет знать, когда произошло нажатие кнопки. Событие Click формируется только, когда пользователь нажимает кнопку и снимает палец с экрана без перемещений по нему. Если свойству ClickMode (Режим нажатия) задано значение Press (Нажатие), Button формирует событие Click, как только палец касается экрана.

Источник: Чарльз Петзольд, Программируем Windows Phone 7, Microsoft Press, © 2011.

По теме:

  • Комментарии