主頁(yè) > 知識(shí)庫(kù) > 高仿Windows Phone QQ登錄界面實(shí)例代碼

高仿Windows Phone QQ登錄界面實(shí)例代碼

熱門標(biāo)簽:客戶服務(wù) 網(wǎng)站排名優(yōu)化 電商新玩法 電銷業(yè)務(wù) 人工智能 國(guó)美全國(guó)運(yùn)營(yíng)中心 百度AI接口 科大訊飛語(yǔ)音識(shí)別系統(tǒng)

給 TextBox文本框前添加圖片

擴(kuò)展PhoneTextBox:添加一個(gè)類“ExtentPhoneTextBox”繼承 PhoneTextBox ,在“ExtentPhoneTextBox”類中添加屬性項(xiàng):

復(fù)制代碼 代碼如下:

public class ExtentPhoneTextBox : PhoneTextBox
    {
        /// summary>
        /// 文本框圖片屬性
        /// /summary>
        public static readonly DependencyProperty TextHeadImageProperty =
            DependencyProperty.Register("TextHeadImage", typeof(ImageSource), typeof(ExtentPhoneTextBox), new PropertyMetadata(null)
            );

        /// summary>
        /// 文本框頭圖片
        /// /summary>
        public ImageSource TextHeadImage
        {
            get { return base.GetValue(TextHeadImageProperty) as ImageSource; }
            set { base.SetValue(TextHeadImageProperty, value); }
        }

        /// summary>
        /// 文本圖片寬度
        /// /summary>
        public double TextHeadImageWidth
        {
            get { return (double)GetValue(TextHeadImageWidthProperty); }
            set { SetValue(TextHeadImageWidthProperty, value); }
        }

        // Using a DependencyProperty as the backing store for TextHeadImageWidth.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty TextHeadImageWidthProperty =
            DependencyProperty.Register("TextHeadImageWidth", typeof(double), typeof(ExtentPhoneTextBox), new PropertyMetadata(null));

        /// summary>
        /// 文本圖片高度
        /// /summary>
        public double TextHeadImageHeight
        {
            get { return (double)GetValue(TextHeadImageHeightProperty); }
            set { SetValue(TextHeadImageHeightProperty, value); }
        }

        // Using a DependencyProperty as the backing store for TextHeadImageHeight.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty TextHeadImageHeightProperty =
            DependencyProperty.Register("TextHeadImageHeight", typeof(double), typeof(ExtentPhoneTextBox), new PropertyMetadata(null));
    }
}


ExtentPhoneText 樣式編輯:

全部樣式如下:

復(fù)制代碼 代碼如下:

DataTemplate x:Key="ControlHeaderTemplate">
            TextBlock FontSize="{StaticResource PhoneFontSizeNormal}" FontFamily="{StaticResource PhoneFontFamilyNormal}" LineStackingStrategy="BlockLineHeight" LineHeight="23.333" Margin="0,-9,0,0" TextWrapping="Wrap" Text="{Binding}">
                TextBlock.RenderTransform>
                    TranslateTransform X="-1" Y="4"/>
                /TextBlock.RenderTransform>
            /TextBlock>
        /DataTemplate>
        toolkit:SingleDataTemplateSelector x:Key="ControlHeaderTemplateSelector" Template="{StaticResource ControlHeaderTemplate}"/>
        Style x:Key="ExtentPhoneTextBoxStyle" TargetType="ExtentCtrs:ExtentPhoneTextBox">
            Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilyNormal}"/>
            Setter Property="FontSize" Value="{StaticResource PhoneFontSizeMediumLarge}"/>
            Setter Property="Background" Value="{StaticResource PhoneTextBoxBrush}"/>
            Setter Property="Foreground" Value="{StaticResource PhoneTextBoxForegroundBrush}"/>
            Setter Property="BorderBrush" Value="{StaticResource PhoneTextBoxBrush}"/>
            Setter Property="SelectionBackground" Value="{StaticResource PhoneAccentBrush}"/>
            Setter Property="SelectionForeground" Value="{StaticResource PhoneTextBoxSelectionForegroundBrush}"/>
            Setter Property="BorderThickness" Value="{StaticResource PhoneBorderThickness}"/>
            Setter Property="Padding" Value="6,0,6,4"/>
            Setter Property="HorizontalContentAlignment" Value="Left"/>
            Setter Property="Template">
                Setter.Value>
                    ControlTemplate TargetType="ExtentCtrs:ExtentPhoneTextBox">
                        Grid x:Name="RootGrid" Background="Transparent">
                            Grid.RowDefinitions>
                                RowDefinition Height="Auto"/>
                                RowDefinition/>
                            /Grid.RowDefinitions>
                            VisualStateManager.VisualStateGroups>
                                VisualStateGroup x:Name="CommonStates">
                                    VisualState x:Name="Normal"/>
                                    VisualState x:Name="Disabled">
                                        Storyboard>
                                            ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="Header">
                                                DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneTextLowContrastBrush}"/>
                                            /ObjectAnimationUsingKeyFrames>
                                            ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="MainBorder">
                                                DiscreteObjectKeyFrame KeyTime="0" Value="Transparent"/>
                                            /ObjectAnimationUsingKeyFrames>
                                            ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="MainBorder">
                                                DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}"/>
                                            /ObjectAnimationUsingKeyFrames>
                                            ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentElement">
                                                DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}"/>
                                            /ObjectAnimationUsingKeyFrames>
                                        /Storyboard>
                                    /VisualState>
                                    VisualState x:Name="ReadOnly">
                                        Storyboard>
                                            ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="MainBorder">
                                                DiscreteObjectKeyFrame KeyTime="0">
                                                    DiscreteObjectKeyFrame.Value>
                                                        Visibility>Collapsed/Visibility>
                                                    /DiscreteObjectKeyFrame.Value>
                                                /DiscreteObjectKeyFrame>
                                            /ObjectAnimationUsingKeyFrames>
                                            ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="ReadonlyBorder">
                                                DiscreteObjectKeyFrame KeyTime="0">
                                                    DiscreteObjectKeyFrame.Value>
                                                        Visibility>Visible/Visibility>
                                                    /DiscreteObjectKeyFrame.Value>
                                                /DiscreteObjectKeyFrame>
                                            /ObjectAnimationUsingKeyFrames>
                                            ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="ReadonlyBorder">
                                                DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneTextBoxBrush}"/>
                                            /ObjectAnimationUsingKeyFrames>
                                            ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="ReadonlyBorder">
                                                DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneTextBoxBrush}"/>
                                            /ObjectAnimationUsingKeyFrames>
                                            ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentElement">
                                                DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneTextBoxReadOnlyBrush}"/>
                                            /ObjectAnimationUsingKeyFrames>
                                        /Storyboard>
                                    /VisualState>
                                /VisualStateGroup>
                                VisualStateGroup x:Name="FocusStates">
                                    VisualState x:Name="Focused">
                                        Storyboard>
                                            ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="MainBorder">
                                                DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneTextBoxEditBackgroundBrush}"/>
                                            /ObjectAnimationUsingKeyFrames>
                                            ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="MainBorder">
                                                DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneTextBoxEditBorderBrush}"/>
                                            /ObjectAnimationUsingKeyFrames>
                                        /Storyboard>
                                    /VisualState>
                                    VisualState x:Name="Unfocused"/>
                                /VisualStateGroup>
                                VisualStateGroup x:Name="LengthIndicatorStates">
                                    VisualStateGroup.Transitions>
                                        VisualTransition From="LengthIndicatorHidden" To="LengthIndicatorVisible">
                                            Storyboard>
                                                ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="LengthIndicator">
                                                    DiscreteObjectKeyFrame KeyTime="0:0:0">
                                                        DiscreteObjectKeyFrame.Value>
                                                            Visibility>Visible/Visibility>
                                                        /DiscreteObjectKeyFrame.Value>
                                                    /DiscreteObjectKeyFrame>
                                                /ObjectAnimationUsingKeyFrames>
                                                ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Margin" Storyboard.TargetName="RootGrid">
                                                    DiscreteObjectKeyFrame KeyTime="0:0:0" Value="0, 0, 0, 25"/>
                                                /ObjectAnimationUsingKeyFrames>
                                                ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="LengthIndicator">
                                                    DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>
                                                /ObjectAnimationUsingKeyFrames>
                                                DoubleAnimation Duration="0:0:0.350" To="27" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.Y)" Storyboard.TargetName="LengthIndicator">
                                                    DoubleAnimation.EasingFunction>
                                                        ExponentialEase Exponent="6"/>
                                                    /DoubleAnimation.EasingFunction>
                                                /DoubleAnimation>
                                            /Storyboard>
                                        /VisualTransition>
                                        VisualTransition From="LengthIndicatorVisible" To="LengthIndicatorHidden">
                                            Storyboard>
                                                DoubleAnimation Duration="0:0:0.350" To="0" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.Y)" Storyboard.TargetName="LengthIndicator">
                                                    DoubleAnimation.EasingFunction>
                                                        ExponentialEase Exponent="6"/>
                                                    /DoubleAnimation.EasingFunction>
                                                /DoubleAnimation>
                                                ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Margin" Storyboard.TargetName="RootGrid">
                                                    DiscreteObjectKeyFrame KeyTime="0:0:0" Value="0, 0, 0, 0"/>
                                                /ObjectAnimationUsingKeyFrames>
                                                ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="LengthIndicator">
                                                    DiscreteObjectKeyFrame KeyTime="0:0:0.350" Value="0"/>
                                                /ObjectAnimationUsingKeyFrames>
                                                ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="LengthIndicator">
                                                    DiscreteObjectKeyFrame KeyTime="0:0:0.350">
                                                        DiscreteObjectKeyFrame.Value>
                                                            Visibility>Collapsed/Visibility>
                                                        /DiscreteObjectKeyFrame.Value>
                                                    /DiscreteObjectKeyFrame>
                                                /ObjectAnimationUsingKeyFrames>
                                            /Storyboard>
                                        /VisualTransition>
                                    /VisualStateGroup.Transitions>
                                    VisualState x:Name="LengthIndicatorVisible">
                                        Storyboard>
                                            ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="LengthIndicator">
                                                DiscreteObjectKeyFrame KeyTime="0:0:0">
                                                    DiscreteObjectKeyFrame.Value>
                                                        Visibility>Visible/Visibility>
                                                    /DiscreteObjectKeyFrame.Value>
                                                /DiscreteObjectKeyFrame>
                                            /ObjectAnimationUsingKeyFrames>
                                            ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Margin" Storyboard.TargetName="RootGrid">
                                                DiscreteObjectKeyFrame KeyTime="0:0:0" Value="0, 0, 0, 25"/>
                                            /ObjectAnimationUsingKeyFrames>
                                            ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="LengthIndicator">
                                                DiscreteObjectKeyFrame KeyTime="0:0:0" Value="1"/>
                                            /ObjectAnimationUsingKeyFrames>
                                            DoubleAnimation Duration="0" To="27" Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.Y)" Storyboard.TargetName="LengthIndicator"/>
                                        /Storyboard>
                                    /VisualState>
                                    VisualState x:Name="LengthIndicatorHidden"/>
                                /VisualStateGroup>
                            /VisualStateManager.VisualStateGroups>
                            toolkit:PhoneContentControl x:Name="Header" ContentTemplate="{TemplateBinding HeaderTemplate}" ContentTemplateSelector="{StaticResource ControlHeaderTemplateSelector}" Content="{TemplateBinding Header}" Foreground="{StaticResource PhoneTextMidContrastBrush}" FontSize="{StaticResource PhoneFontSizeNormal}" FontFamily="{StaticResource PhoneFontFamilyNormal}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{StaticResource PhoneHorizontalMargin}"/>
                            Border x:Name="LengthIndicatorBorder" Grid.Row="1">
                                TextBlock x:Name="LengthIndicator" CacheMode="BitmapCache" Foreground="{StaticResource PhoneTextMidContrastBrush}" FontSize="{StaticResource PhoneFontSizeNormal}" FontFamily="{StaticResource PhoneFontFamilyNormal}" HorizontalAlignment="Right" Margin="{StaticResource PhoneMargin}" Opacity="0" TextAlignment="Right" Visibility="Collapsed" VerticalAlignment="Bottom">
                                    TextBlock.RenderTransform>
                                        TranslateTransform/>
                                    /TextBlock.RenderTransform>
                                /TextBlock>
                            /Border>
                            Border x:Name="MainBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Margin="{StaticResource PhoneTouchTargetOverhang}" Grid.Row="1">
                                TextBlock x:Name="PlaceholderTextElement" Foreground="{StaticResource PhoneTextBoxReadOnlyBrush}" HorizontalAlignment="Left" Padding="{TemplateBinding Padding}" Text="{TemplateBinding PlaceholderText}" VerticalAlignment="Center" Margin="40,2,0,2"/>
                            /Border>
                            Border x:Name="ReadonlyBorder" BorderBrush="{StaticResource PhoneDisabledBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" Margin="{StaticResource PhoneTouchTargetOverhang}" Grid.Row="1" Visibility="Collapsed"/>
                            Border BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" Margin="{StaticResource PhoneTouchTargetOverhang}" Grid.Row="1">
                                StackPanel Orientation="Horizontal">
                                    Image Source="{TemplateBinding TextHeadImage}" Width="{TemplateBinding TextHeadImageWidth}" Height="{TemplateBinding TextHeadImageWidth}" HorizontalAlignment="Left" Margin="12,2,1,2"/>
                                    ContentControl x:Name="ContentElement" BorderThickness="0" CacheMode="BitmapCache" HorizontalContentAlignment="Stretch" Padding="{TemplateBinding Padding}" VerticalContentAlignment="Stretch" VerticalAlignment="Center"/>
                                /StackPanel>
                            /Border>
                            toolkitPrimitives:TiltUserControl HorizontalAlignment="Right" Margin="0,0,-12,0" Grid.Row="1" VerticalAlignment="Bottom">
                                Border x:Name="ActionIconBorder" Background="Transparent" Height="72" Width="96">
                                    Image x:Name="ActionIcon" HorizontalAlignment="Right" Height="26" Margin="0,0,36,0" Source="{TemplateBinding ActionIcon}"/>
                                /Border>
                            /toolkitPrimitives:TiltUserControl>
                            TextBlock x:Name="MeasurementTextBlock" FontWeight="{TemplateBinding FontWeight}" FontStyle="{TemplateBinding FontStyle}" FontStretch="{TemplateBinding FontStretch}" FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" IsHitTestVisible="False" Margin="8" Opacity="0" Grid.Row="1" TextAlignment="{TemplateBinding TextAlignment}" TextWrapping="{TemplateBinding TextWrapping}" Text="{TemplateBinding Text}"/>
                        /Grid>
                    /ControlTemplate>
                /Setter.Value>
            /Setter>
        /Style>

UI部局xaml代碼如下:

Grid x:Name="ContentPanel"
            Margin="0,162,24,19"
            Grid.RowSpan="2">

            ExtentCtrs:ExtentPhoneTextBox  Margin="12,10,12,0"
                TextWrapping="Wrap"
                VerticalAlignment="Top"
                PlaceholderText="QQ號(hào)碼/手機(jī)/郵箱"
                Height="80"
                Background="White" TextHeadImage="/Assets/QqAccount.WVGA.png" Style="{StaticResource ExtentPhoneTextBoxStyle}" TextHeadImageHeight="22" TextHeadImageWidth="24" />
            ExtentCtrs:ExtentPhoneTextBox  Margin="12,107,12,0"
                TextWrapping="Wrap"
                VerticalAlignment="Top"
                PlaceholderText="點(diǎn)擊輸入QQ密碼"
                Height="80"
                Background="White" Style="{StaticResource ExtentPhoneTextBoxStyle}" TextHeadImage="/Assets/Password.WVGA.png" TextHeadImageHeight="22" TextHeadImageWidth="24" />

            toolkitPrimitives:PhonePasswordBoxCheckBox Content="記住密碼"
                HorizontalAlignment="Left"
                Margin="12,195,0,0"
                VerticalAlignment="Top"
                HorizontalContentAlignment="Left" />
            toolkitPrimitives:PhonePasswordBoxCheckBox Content="隱身登錄"
                HorizontalAlignment="Left"
                Margin="224,195,0,0"
                VerticalAlignment="Top" />
            toolkitPrimitives:PhonePasswordBoxCheckBox Content="靜音登錄"
                HorizontalAlignment="Left"
                Margin="12,272,0,0"
                VerticalAlignment="Top" />
            HyperlinkButton Content="注冊(cè)帳號(hào)"
                HorizontalAlignment="Left"
                Margin="12,349,0,0"
                VerticalAlignment="Top"
                HorizontalContentAlignment="Left" />
            HyperlinkButton Content="找回密碼"
                HorizontalAlignment="Left"
                Margin="12,385,0,0"
                VerticalAlignment="Top"
                HorizontalContentAlignment="Left" />

        /Grid>
運(yùn)行效果如下:

您可能感興趣的文章:
  • js如何調(diào)用qq互聯(lián)api實(shí)現(xiàn)第三方登錄
  • python登錄QQ郵箱發(fā)信的實(shí)現(xiàn)代碼
  • 用VBScript制作QQ自動(dòng)登錄的腳本代碼
  • ASP.NET實(shí)現(xiàn)QQ、微信、新浪微博OAuth2.0授權(quán)登錄
  • Android調(diào)用第三方QQ登錄代碼分享
  • Yii2中OAuth擴(kuò)展及QQ互聯(lián)登錄實(shí)現(xiàn)方法
  • jquery仿QQ登錄賬號(hào)選擇下拉框效果
  • Python腳本簡(jiǎn)單實(shí)現(xiàn)打開(kāi)默認(rèn)瀏覽器登錄人人和打開(kāi)QQ的方法
  • Python的Flask框架應(yīng)用程序?qū)崿F(xiàn)使用QQ賬號(hào)登錄的方法
  • Android QQ登錄界面繪制代碼

標(biāo)簽:廈門 攀枝花 POS機(jī) 咸寧 南平 益陽(yáng) 棗莊 拉薩

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《高仿Windows Phone QQ登錄界面實(shí)例代碼》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266