Я думал о том, чтобы вывести приложение на 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" />
Давайте посмотрим это в действии. Когда я нажимаю кнопку «Изменить», приложение скрывает текстовый блок, открывает текстовое поле и вводит значение, чтобы я мог его редактировать:
Когда я нажимаю кнопку «Сохранить», она сворачивает текстовое поле, снова открывает текстовый блок и помещает значение из текстового поля обратно в текстовый блок.
Подводя итог, я установил фон изображения, я удостоверился, что пропорции правильны как в портретном, так и в альбомном режиме, я убедился, что мой текст остается читаемым с фоновым изображением, и я разрешаю пользователю редактировать ценности.
С учетом сказанного я думаю, что пришло время начать работу над приложением.
Продолжение следует…