Я думал о том, чтобы вывести приложение на Marketplace самостоятельно. Я выдвинул несколько идей. Пока не знаю, смогу ли я заставить их работать, но я обязательно попробую.
Конечно, с этой идеей на заднем плане еще многое предстоит узнать о разработке для Windows Phone 7. Но, с учетом того, что я узнал до сих пор, я думаю, что я действительно мог бы попробовать.
Я, конечно, буду сообщать каждый шаг здесь, в моем блоге.
В любом случае, прежде чем я смогу это начать, мне нужно взглянуть на несколько мелочей. Например, как стилизовать фон моего приложения с помощью изображения. В конце концов, я хочу придать этому уникальный вид. В противном случае это будет другое приложение с черным фоном.
Еще одна вещь, которую я хочу посмотреть, это то, что происходит, когда я включаю эмулятор. Будет ли мое приложение отображаться правильно? И если нет, как я могу сделать это правильно? И как это меняет макет моего приложения?
Итак, есть еще несколько вещей, которые мне нужно знать, прежде чем я действительно смогу начать работу над реальным приложением.
Итак, я просто собираюсь создать еще один проект в Visual Studio.
Первое, что я хочу сделать, это запустить приложение и повернуть эмулятор:
Ну, это не сработает. Все заперто на местах. Способ исправить это простое свойство на странице приложения:
SupportedOrientations="Portrait" Orientation="Portrait"
Я изменяю это свойство в окне свойств:
Это изменит свойство Orientation в XAML, и я могу повернуть эмулятор в любом случае при запуске приложения:
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
Теперь все встает на свои места, в зависимости от того, как я включаю эмулятор или позже устройство.
Давайте двигаться дальше и установить фон. Теперь, если я хочу отойти от этого черного фона, то легко изменить цвет фона. Но я хочу изображение фона.
Вот как я это делаю: я помещаю курсор мыши в сетку LayoutRoot, и затем я могу перейти к окну свойств, где я могу изменить свойство фона с Transparency на изображение, которое я выбрал в качестве фона:
Все идет нормально. Давайте запустим это:
Он переориентируется, когда я включаю эмулятор. Единственное, что здесь осталось, это установить правильные пропорции. Я делаю это, изменяя свойство Stretch этого изображения с Fill на UniformToFill.
Теперь я перетащил элемент управления Textblock в основную форму:
Теперь проблема в том, что я должен убедиться, что мой текст читаем, а изображение на заднем плане. Полезным элементом управления для этого является элемент управления Rectangle. Давайте перетащим один прямо на элемент управления Textblock. Я собираюсь немного отредактировать это в моем XAML. То, что я хочу, это элемент управления Rectangle позади элемента управления Textblock, но перед самим изображением. Первое, что я здесь делаю, это изменяю непрозрачность элемента управления Rectangle.
Когда я запускаю его сейчас и включаю эмулятор, у меня все же возникает другая проблема:
И мой Textblock, и мой Rectangle не растягиваются на всю ширину моего эмулятора, когда он находится в ландшафтном режиме. Для того, чтобы это исправить, я устанавливаю горизонтальное выравнивание обоих элементов управления на «Растянуть» и устанавливаю настройку левого поля обоих элементов управления на «0». Наконец, я собираюсь полностью удалить свойство Width для обоих элементов управления:
<Rectangle Height="260"
HorizontalAlignment="Stretch"
Margin="0,6,0,0"
Name="rectangle1"
Stroke="Black"
StrokeThickness="1"
VerticalAlignment="Top"
Fill="#56000000" />
<TextBlock Height="176"
HorizontalAlignment="Stretch"
Margin="0,6,0,0"
Name="textBlock1"
Text="Hello World"
VerticalAlignment="Top"
Когда я запускаю его сейчас, мой Textblock и мой Rectangle красиво заполняют ширину:
Давайте двигаться дальше. В одной из моих идей для приложения мне нужно разрешить пользователю редактировать значения, которые на данный момент доступны только для чтения. Я хочу, чтобы текстовый блок перевернулся в текстовое поле. Есть маленькая хитрость. Давайте перетащим текстовое поле на дизайнер:
Я собираюсь установить свойства Textbox равными свойствам Textblock в XAML. Я также очищаю текстовое свойство Textbox. Свойство text для текстового блока изменяется на «Hello World».
Теперь мне нужен еще один элемент управления, кнопка:
<Button Name="myButton"
HorizontalAlignment="Stretch"
Margin="0,200,0,0"
VerticalAlignment="Top"
Width="250"
Content="Edit"
Click="myButton_Click"
/>
Теперь мне нужно написать код внутри моего обработчика событий. Когда кто-то нажимает кнопку «Редактировать», я хочу, чтобы текстовый блок переворачивался в текстовое поле и возвращался в текстовый блок при повторном нажатии кнопки:
private void myButton_Click(object sender, RoutedEventArgs e)
{
if (textBox1.Visibility == System.Windows.Visibility.Visible)
{
myButton.Content = "Edit";
textBlock1.Text = textBox1.Text;
textBox1.Visibility = System.Windows.Visibility.Collapsed;
textBlock1.Visibility = System.Windows.Visibility.Visible;
}
else
{
myButton.Content = "Save";
textBox1.Text = textBlock1.Text;
textBox1.Visibility = System.Windows.Visibility.Visible;
textBlock1.Visibility = System.Windows.Visibility.Collapsed;
}
То, что я делаю здесь, сначала проверяет, является ли текстовое поле видимым. Если это так, то выполняется первый кодовый блок («если»). Если нет, то выполняется второй кодовый блок («else»). В общем, я переключаюсь между видимостью текстового поля и текстового блока. Когда кто-то нажимает кнопку «Редактировать», я хочу получить значение текстового поля и вернуть его обратно в текстовый блок. Еще одна вещь, которую нужно сделать. В моем XAML я собираюсь установить начальную видимость текстового блока на «Видимый» и начальную видимость текстового поля на «Свернутый»:
<TextBlock Height="176"
HorizontalAlignment="Stretch"
Margin="0,6,0,0"
Name="textBlock1"
Text="Hello World"
VerticalAlignment="Top"
Visibility="Visible"
/>
<TextBox Height="176"
HorizontalAlignment="Stretch"
Margin="0,6,0,0"
Name="textBox1"
Text=""
VerticalAlignment="Top"
Visibility="Collapsed"
/>
Давайте посмотрим это в действии. Когда я нажимаю кнопку «Изменить», приложение скрывает текстовый блок, открывает текстовое поле и вводит значение, чтобы я мог его редактировать:
Когда я нажимаю кнопку «Сохранить», она сворачивает текстовое поле, снова открывает текстовый блок и помещает значение из текстового поля обратно в текстовый блок.
Подводя итог, я установил фон изображения, я удостоверился, что пропорции правильны как в портретном, так и в альбомном режиме, я убедился, что мой текст остается читаемым с фоновым изображением, и я разрешаю пользователю редактировать ценности.
С учетом сказанного я думаю, что пришло время начать работу над приложением.
Продолжение следует…














