Maison interface Web tutoriel HTML windows phone app 添加启动页面介绍新功能_html/css_WEB-ITnose

windows phone app 添加启动页面介绍新功能_html/css_WEB-ITnose

Jun 24, 2016 am 11:52 AM

方案1: 利用 Panorama或者 pivotpage

1. 重写panorama page, 使其达到全屏

    public class PanoramaFullScreen : Panorama    {        protected override System.Windows.Size MeasureOverride(System.Windows.Size availableSize)        {            availableSize.Width += 48;            return base.MeasureOverride(availableSize);        }    }
Copier après la connexion


2. 去掉 title 和 header,调整好margin

            <phone:PanoramaItem>                <Grid Canvas.ZIndex="-1" Margin="-66,-40,-55,0" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="591">                        <Image Stretch="Fill" Source="/Images/screen1.jpg" VerticalAlignment ="Stretch"                                                         HorizontalAlignment="Stretch" Margin="54,0,54,0"/>                    </Grid>            </phone:PanoramaItem>
Copier après la connexion

3. 在codebehind 中控制页面跳转


 private TouchPoint first;        private const int DetectRightGesture = 20;        private int startIndex = 0;        private readonly int endIndex;        public WhatsNewView()        {            InitializeComponent();            endIndex = MyStartScreen.Items.Count - 1;            MyStartScreen.IsHitTestVisible = false;            MyStartScreen.IsEnabled = false;            Touch.FrameReported += Touch_FrameReported;            TouchPanel.EnabledGestures = GestureType.HorizontalDrag;        }        private void Touch_FrameReported(object sender, TouchFrameEventArgs e)        {                     try            {                TouchPoint mainTouch = e.GetPrimaryTouchPoint(this);                if (mainTouch.Action == TouchAction.Down)                    first = mainTouch;                else if (mainTouch.Action == TouchAction.Up && TouchPanel.IsGestureAvailable)                {                    if (mainTouch.Position.X - first.Position.X < -DetectRightGesture)                    {                        if (startIndex < endIndex)                        {                            MyStartScreen.SlideToPage(startIndex + 1, SlideTransitionMode.SlideLeftFadeOut);                            startIndex++;                        }                        else                        {                            NavigateToNextPage();                        }                    }                    else if (mainTouch.Position.X - first.Position.X > DetectRightGesture)                    {                        if (startIndex > 0)                        {                            MyStartScreen.SlideToPage(startIndex - 1, SlideTransitionMode.SlideRightFadeOut);                            startIndex--;                        }                    }                }            }            catch            {            }        }        private void ButtonBase_OnClick(object sender, RoutedEventArgs e)        {            NavigateToNextPage();        }        private void NavigateToNextPage()        {            NavigationService.Navigate(new Uri("/Views/LoginPage.xaml", UriKind.Relative));        }        protected override void OnNavigatedFrom(NavigationEventArgs e)        {            while (NavigationService.BackStack.Any())            {                NavigationService.RemoveBackEntry();            }        }
Copier après la connexion

4. 补充: 拓展panorama 方法,使其跳转附带动画

  public static void SlideToPage(this Panorama self, int item, SlideTransitionMode slideMode)        {            var slideTransition = new SlideTransition { };            slideTransition.Mode = slideMode;            ITransition transition = slideTransition.GetTransition(self);            transition.Completed += delegate            {                self.DefaultItem = self.Items[item];                transition.Stop();            };            transition.Begin();        }
Copier après la connexion


不足:

SlideTransitionMode SlideTransitionMode支持动画有限,一般达不到预期效果
Copier après la connexion


方案2:

将所有图片水平排列,根据手势通过左右偏移来控制显示


 <Canvas>            <StackPanel x:Name="Slider"                        Canvas.Left="0"                        Orientation="Horizontal">                <Image Source="/Images/screen1.jpg"                       Stretch ="UniformToFill"/>                <Image Source="/Images/screen2.jpg"                       Stretch ="UniformToFill" />                <Image Source="/Images/screen3.jpg"                       Stretch ="UniformToFill" />            </StackPanel>        </Canvas>
Copier après la connexion

一般来说,最后一页面中的按钮和前面不同,可以通过 SlidePageIndex 来区分。先将其声明为依赖属性,在view中通过converter来控制是否显示

        public static readonly DependencyProperty SlidePageIndexProperty =                 DependencyProperty.Register("SlidePageIndex", typeof(int), typeof(StartScreenView), null);        public int SlidePageIndex        {            get { return (int)GetValue(SlidePageIndexProperty); }            set { SetValue(SlidePageIndexProperty, value); }        }
Copier après la connexion

偏移量根据不同设备决定

 _uniformImageWidth = (int)Application.Current.Host.Content.ActualWidth;
Copier après la connexion

手势控制

Touch.FrameReported += Touch_FrameReported;            TouchPanel.EnabledGestures = GestureType.HorizontalDrag;
Copier après la connexion

 private void Touch_FrameReported(object sender, TouchFrameEventArgs e)        {            try            {                TouchPoint mainTouch = e.GetPrimaryTouchPoint(this);                if (mainTouch.Action == TouchAction.Down)                    first = mainTouch;                else if (mainTouch.Action == TouchAction.Up && TouchPanel.IsGestureAvailable)                {                    if (mainTouch.Position.X - first.Position.X < -DetectRightGesture)                    {                        if (SlidePageIndex == MaxSlidePageCount - 1)                        {                            NavigateToLoginPage();                        }                        SlidePageIndex++;                        Slide();                    }                    else if (mainTouch.Position.X - first.Position.X > DetectRightGesture)                    {                        if (SlidePageIndex == 0) return;                        SlidePageIndex--;                        Slide();                    }                }            }            catch            {            }        }
Copier après la connexion


滑动逻辑

        private void Slide()        {            var storyboard = new Storyboard();            var ani = new DoubleAnimation();            ani.To = SlidePageIndex * -_uniformImageWidth;            ani.Duration = TimeSpan.FromSeconds(1.0f);            ani.EasingFunction = new ElasticEase() { EasingMode = EasingMode.EaseInOut, Oscillations = 0 };            Storyboard.SetTarget(ani, this.Slider);            Storyboard.SetTargetProperty(ani, new PropertyPath("(Canvas.Left)"));            storyboard.Children.Add(ani);            storyboard.Begin();        }
Copier après la connexion


此页面不可以通过back键导航??

        protected override void OnNavigatedFrom(NavigationEventArgs e)        {            while (NavigationService.BackStack.Any())            {                NavigationService.RemoveBackEntry();            }        }
Copier après la connexion


??

??

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Dead Rails - Comment apprivoiser les loups
4 Il y a quelques semaines By DDD
<🎜>: Grow A Garden - Guide de mutation complet
2 Il y a quelques semaines By DDD
Niveaux de force pour chaque ennemi et monstre de R.E.P.O.
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1659
14
Tutoriel PHP
1258
29
Tutoriel C#
1232
24
HTML est-il facile à apprendre pour les débutants? HTML est-il facile à apprendre pour les débutants? Apr 07, 2025 am 12:11 AM

HTML convient aux débutants car il est simple et facile à apprendre et peut rapidement voir les résultats. 1) La courbe d'apprentissage de HTML est fluide et facile à démarrer. 2) Il suffit de maîtriser les balises de base pour commencer à créer des pages Web. 3) Flexibilité élevée et peut être utilisée en combinaison avec CSS et JavaScript. 4) Les ressources d'apprentissage riches et les outils modernes soutiennent le processus d'apprentissage.

Comprendre HTML, CSS et JavaScript: un guide pour débutant Comprendre HTML, CSS et JavaScript: un guide pour débutant Apr 12, 2025 am 12:02 AM

WebDevelopmentReliesOnHTML, CSS, etjavascript: 1) HTMLSTRUCTURESCONTENT, 2) CSSSTYLESIT, et3) JavascriptAdddsInterActivity, Forming TheasisofmodernweBEBExperiences.

Les rôles de HTML, CSS et JavaScript: responsabilités de base Les rôles de HTML, CSS et JavaScript: responsabilités de base Apr 08, 2025 pm 07:05 PM

HTML définit la structure Web, CSS est responsable du style et de la mise en page, et JavaScript donne une interaction dynamique. Les trois exercent leurs fonctions dans le développement Web et construisent conjointement un site Web coloré.

Quel est un exemple d'une balise de départ dans HTML? Quel est un exemple d'une balise de départ dans HTML? Apr 06, 2025 am 12:04 AM

Anexampleofastartingtaginhtmlis, qui abinginsaparagraph.startingtagsaressentialtinhtmlastheyinitiateelements, définit les éventualités, et la faculté de réduction des pages et de la construction de la création.

HTML, CSS et JavaScript: outils essentiels pour les développeurs Web HTML, CSS et JavaScript: outils essentiels pour les développeurs Web Apr 09, 2025 am 12:12 AM

HTML, CSS et JavaScript sont les trois piliers du développement Web. 1. HTML définit la structure de la page Web et utilise des balises telles que, etc. 2. CSS contrôle le style de page Web, en utilisant des sélecteurs et des attributs tels que la couleur, la taille de la police, etc. 3. JavaScript réalise les effets dynamiques et l'interaction, par la surveillance des événements et les opérations DOM.

HTML: The Structure, CSS: The Style, Javascript: Le comportement HTML: The Structure, CSS: The Style, Javascript: Le comportement Apr 18, 2025 am 12:09 AM

Les rôles de HTML, CSS et JavaScript dans le développement Web sont: 1. HTML définit la structure de la page Web, 2. CSS contrôle le style de page Web, et 3. JavaScript ajoute un comportement dynamique. Ensemble, ils construisent le cadre, l'esthétique et l'interactivité des sites Web modernes.

L'avenir de HTML: évolution et tendances de la conception Web L'avenir de HTML: évolution et tendances de la conception Web Apr 17, 2025 am 12:12 AM

L'avenir de HTML est plein de possibilités infinies. 1) Les nouvelles fonctionnalités et normes comprendront plus de balises sémantiques et la popularité des composants Web. 2) La tendance de la conception Web continuera de se développer vers une conception réactive et accessible. 3) L'optimisation des performances améliorera l'expérience utilisateur grâce à des technologies de chargement d'image réactives et de chargement paresseux.

L'avenir de HTML, CSS et JavaScript: Tendances de développement Web L'avenir de HTML, CSS et JavaScript: Tendances de développement Web Apr 19, 2025 am 12:02 AM

Les tendances futures de HTML sont la sémantique et les composants Web, les tendances futures de CSS sont CSS-in-JS et CSShoudini, et les tendances futures de JavaScript sont WebAssembly et sans serveur. 1. La sémantique HTML améliore l'accessibilité et les effets de référencement, et les composants Web améliorent l'efficacité du développement, mais l'attention doit être accordée à la compatibilité du navigateur. 2. CSS-in-JS améliore la flexibilité de gestion du style mais peut augmenter la taille du fichier. CSShoudini permet le fonctionnement direct du rendu CSS. 3.WeBassembly optimise les performances de l'application du navigateur mais a une courbe d'apprentissage abrupte, et sans serveur simplifie le développement mais nécessite une optimisation des problèmes de démarrage à froid.

See all articles