Форум программистов, компьютерный форум CyberForum.ru

Ориентация приложения - Windows Phone

Восстановить пароль Регистрация
 
BoOMka
0 / 0 / 1
Регистрация: 20.03.2015
Сообщений: 48
12.12.2015, 15:20     Ориентация приложения #1
Всем привет. Подскажите пожалуйста, в чем моя ошибка. Написана простая программа "сумматор", которая вычисляет сумму 2-х значений(естественно с обработкой ошибок ввода, т.е. нельзя ввести текст, можно только цифры). Я хочу адаптировать эту программу к изменению ориентации. Вот коды:
haml-файл
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<phone:PhoneApplicationPage 
    x:Class="PhoneApp2.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
    shell:SystemTray.IsVisible="True">
 
    <!--LayoutRoot представляет корневую сетку, где размещается все содержимое страницы-->
    <Grid x:Name="LayoutRoot" Background="Transparent" FlowDirection="RightToLeft" HorizontalAlignment="Stretch">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
 
        <!--TitlePanel содержит имя приложения и заголовок страницы-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock x:Name="ApplicationTitle" Text="Первое приложение: СУММАТОР" Style="{StaticResource PhoneTextNormalStyle}"/>
            <TextBlock x:Name="PageTitle" Text="СЛОЖЕНИЕ" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
        </StackPanel>
 
        <!--ContentPanel — поместите здесь дополнительное содержимое-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <TextBox Height="72" HorizontalAlignment="Center" Margin="0,6,0,0" Name="firstNumberTextBox" Text=" " VerticalAlignment="Top" Width="460" />
            <TextBlock Height="30" HorizontalAlignment="Left" Margin="213,84,0,0" Name="plusTextBlock" Text="+" VerticalAlignment="Top" />
            <TextBox Height="72" HorizontalAlignment="Center" Margin="0,123,0,0" Name="secondNumberTextBox" Text=" " VerticalAlignment="Top" Width="460" />
            <Button Content="Сумма" Height="72" HorizontalAlignment="Left" Margin="141,226,0,0"
    Name="equalsButton" VerticalAlignment="Top" Width="160"
    Click="equalsButton_Click" />
            <TextBlock Height="51" HorizontalAlignment="Left" Margin="12,336,0,0" Name="resultTextBlock" Text="0" VerticalAlignment="Top" Width="441" FontSize="28" TextAlignment="Center" />
        </Grid>
    </Grid>
 
    <!--Пример кода, иллюстрирующий использование ApplicationBar-->
    <!--<phone:PhoneApplicationPage.ApplicationBar>
        <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
            <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Кнопка 1"/>
            <shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Кнопка 2"/>
            <shell:ApplicationBar.MenuItems>
                <shell:ApplicationBarMenuItem Text="Элемент меню 1"/>
                <shell:ApplicationBarMenuItem Text="Элемент меню 2"/>
            </shell:ApplicationBar.MenuItems>
        </shell:ApplicationBar>
    </phone:PhoneApplicationPage.ApplicationBar>-->
 
</phone:PhoneApplicationPage>
cs-файл
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
 
namespace PhoneApp2
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Конструктор
        public MainPage()
        {
            InitializeComponent();            
        }
        private SolidColorBrush errorBrush = new SolidColorBrush(Colors.Red);
        private Brush correctBrush = null;
        private void PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
        {
            if (e.Orientation == PageOrientation.PortraitUp)
            {
                setPortrait();
            }
            else
            {
                setLandscape();
            }
        }
 
        private void calculateResult()
        {
            bool errorFound = false;
 
            if (correctBrush == null)
                correctBrush = firstNumberTextBox.Foreground;
 
            float v1 = 0;
 
            if (!float.TryParse(firstNumberTextBox.Text, out v1))
            {
                firstNumberTextBox.Foreground = errorBrush;
                errorFound = true;
            }
            else
                firstNumberTextBox.Foreground = correctBrush;
 
            float v2 = 0;
 
            if (!float.TryParse(secondNumberTextBox.Text, out v2))
            {
                secondNumberTextBox.Foreground = errorBrush;
                errorFound = true;
            }
            else
                secondNumberTextBox.Foreground = correctBrush;
 
            if (errorFound)
                resultTextBlock.Text = "Ошибка при вводе";
            else
            {
                float result = v1 + v2;
                resultTextBlock.Text = result.ToString();
            }
        }
 
        private void equalsButton_Click(object sender, RoutedEventArgs e)
        {
            calculateResult();
        }
 
        private void setLandscape()
        {
            firstNumberTextBox.Margin = new Thickness(8, 19, 0, 0);
            firstNumberTextBox.Width = 207;
            secondNumberTextBox.Margin = new Thickness(252, 19, 0, 0);
            secondNumberTextBox.Width = 207;
            plusTextBlock.Margin = new Thickness(221, 35, 0, 0);
            resultTextBlock.Margin = new Thickness(538, 35, 0, 0);
        }
 
        private void setPortrait()
        {
            firstNumberTextBox.Margin = new Thickness(8, 19, 0, 0);
            firstNumberTextBox.Width = 207;
            secondNumberTextBox.Margin = new Thickness(252, 19, 0, 0);
            secondNumberTextBox.Width = 207;
            plusTextBlock.Margin = new Thickness(221, 35, 0, 0);
            resultTextBlock.Margin = new Thickness(538, 35, 0, 0);
        }
 
    }
}
Как должно быть, картинка снизу.
Миниатюры
Ориентация приложения  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2015, 15:20     Ориентация приложения
Посмотрите здесь:

Заставка приложения Windows Phone
Мануал для приложения Windows Phone
Windows Phone Фоновое работа приложения
Уведомления внутри приложения Windows Phone
Цвет приложения Windows Phone
Ссылка на оценку приложения Windows Phone
Windows Phone Обновление приложения
Windows Phone Закрытие приложения
Windows Phone Публикация приложения WP 8.1 в магазине
Windows Phone Хранение данных приложения
Windows Phone Ориентация (поворот) элемента WebView
Windows Phone Разработка UWP приложения

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 12:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru