Universal app(wp8.1) 自定义左侧导航栏

1. .cs 文件
using System;
using System.Collections.Generic;
using System.Windows.Input;
using Windows.Foundation;
using Windows.UI;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Animation;

namespace CustomControlContainer.CustomControls
{
    public class LeftMenuPane : ContentControl
    {
        private static readonly bool DefaultIsMenuOpen = false;
        private static readonly Visibility DefaultInverseTapIconVisible = Visibility.Collapsed;
        private static readonly Visibility DefaultContentVisible = Visibility.Visible;
        private static readonly Color DefaultHeaderBackground = Color.FromArgb(255, 15, 111, 199);

        #region Dependency properties defination

        /// <summary>
        /// The Header property displays at the top place, if user does set this value, the specific will not display.
        /// </summary>
        public static readonly DependencyProperty HeaderProperty = DependencyProperty.Register("Header",
            typeof(string),
            typeof(LeftMenuPane),
            null);

        /// <summary>
        /// The background of the header.
        /// </summary>
        public static readonly DependencyProperty HeaderBackgroundProperty = DependencyProperty.Register("HeaderBackground",
            typeof(Brush),
            typeof(LeftMenuPane),
            new PropertyMetadata(new SolidColorBrush(DefaultHeaderBackground)));

        /// <summary>
        /// The property indicates whether is menu is open or not.
        /// </summary>
        public static readonly DependencyProperty IsMenuOpenProperty = DependencyProperty.Register("IsMenuOpen",
            typeof(bool),
            typeof(LeftMenuPane),
          new PropertyMetadata(DefaultIsMenuOpen));

        #endregion

        #region Properties

        public string Header
        {
            get { return (string)GetValue(HeaderProperty); }
            set { SetValue(HeaderProperty, value); }
        }

        public Brush HeaderBackground
        {
            get { return (Brush)GetValue(HeaderBackgroundProperty); }
            set { SetValue(HeaderBackgroundProperty, value); }
        }

        public bool IsMenuOpen
        {
            get { return (bool)GetValue(IsMenuOpenProperty); }
            set { SetValue(IsMenuOpenProperty, value); }
        }

        #endregion

        protected override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
        }

        #region Private methods

        public void MakeMenuOpen()
        {
            if (!this.IsMenuOpen)
            {
                VisualStateManager.GoToState(this, "SlideOutState", true);
            }
            this.IsMenuOpen = true;
        }

        public void MakeMenuClose()
        {
            if (this.IsMenuOpen)
            {
                VisualStateManager.GoToState(this, "SlideInState", true);
            }

            this.IsMenuOpen = false;
        }

        #endregion
    }
}

2. XAML 样式布局
<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:CustomControlContainer.CustomControls"
    xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"
    xmlns:Core="using:Microsoft.Xaml.Interactions.Core" 
    xmlns:Media="using:Microsoft.Xaml.Interactions.Media" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d">
    <Style x:Key="NavigationButton"
		TargetType="Button">
        <Setter Property="Background" Value="Transparent" />
        <Setter Property="BorderBrush" Value="{StaticResource PhoneForegroundBrush}" />
        <Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}" />
        <Setter Property="BorderThickness" Value="{StaticResource PhoneBorderThickness}" />
        <Setter Property="FontSize" Value="22" />
        <Setter Property="Padding" Value="10,5,10,5" />
        <Setter Property="FontWeight" Value="Light"/>
        <Setter Property="Margin" Value="0,0,0,-7" />
        <Setter Property="Width" Value="240" />
        <Setter Property="Foreground" Value="Black" />
        <Setter Property="HorizontalAlignment" Value="Center"/>
        <Setter Property="Canvas.ZIndex" Value="1" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Grid Background="Transparent">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal" />
                                <VisualState x:Name="Disabled">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentContainer"
											Storyboard.TargetProperty="Foreground">
                                            <DiscreteObjectKeyFrame KeyTime="0"
												Value="#666666" />
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="Pressed">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ButtonBackground"
											Storyboard.TargetProperty="Background">
                                            <DiscreteObjectKeyFrame KeyTime="0"
												Value="DeepSkyBlue" />
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentContainer"
											Storyboard.TargetProperty="Foreground">
                                            <DiscreteObjectKeyFrame KeyTime="0"
												Value="White" />
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Grid x:Name="ButtonBackground">
                            <ContentControl x:Name="ContentContainer"
								HorizontalAlignment="Left"
								HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
								VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
								Content="{TemplateBinding Content}"
								ContentTemplate="{TemplateBinding ContentTemplate}"
								Foreground="{TemplateBinding Foreground}"
								Padding="{TemplateBinding Padding}" />
                        </Grid>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <Style x:Key="ButtonFont"
		TargetType="TextBlock">
        <Setter Property="HorizontalAlignment" Value="Center"/>
        <Setter Property="VerticalAlignment" Value="Center"/>
        <Setter Property="FontFamily" Value="/Fonts/dynamsymb.ttf#Dynamics Symbol"/>
        <Setter Property="FontSize" Value="24" />
    </Style>
    <Style x:Key="ButtonText"
		TargetType="TextBlock">
        <Setter Property="Margin" Value="10,0,0,0" />
        <Setter Property="FontSize" Value="21" />
    </Style>
    <x:Double x:Key="NavigationBarWidth">200</x:Double>
    <SolidColorBrush x:Key="DividingLineSolidColorBrush" Color="LightGray" />
    <Style x:Key="MenuDividingLineStyle" TargetType="Line">
        <Setter Property="Fill" Value="{StaticResource DividingLineSolidColorBrush}"/>
        <Setter Property="Stroke" Value="{StaticResource DividingLineSolidColorBrush}"/>
        <Setter Property="Y1" Value="2"/>
        <Setter Property="Y2" Value="2"/>
        <Setter Property="X2" Value="190"/>
    </Style>

    <!--Style for custom left menu pane-->
    <Style TargetType="local:LeftMenuPane">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="local:LeftMenuPane">
                    <Grid x:Name="RootContent">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup  x:Name="VisualStateGroup">
                                <VisualState x:Name="SlideOutState">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames  EnableDependentAnimation="True"
                                			Storyboard.TargetProperty="Width"
                                			Storyboard.TargetName="stackPanel">
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.05" Value="40"/>
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.10" Value="80"/>
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.15" Value="120"/>
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.20" Value="160"/>
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.25" Value="190"/>
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.30" Value="215"/>
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.35" Value="230"/>
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.40" Value="240"/>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="MenuHideFlag">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Collapsed</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="MenuShowFlag">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Visible</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="ShadowBackground">
                                            <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="0.4"/>
                                        </DoubleAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="ShadowBackground">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Visible</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="PopupView">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Visible</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="SlideInState">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames  EnableDependentAnimation="True"
                                			Storyboard.TargetProperty="Width"
                                			Storyboard.TargetName="stackPanel">
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.05" Value="200"/>
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.10" Value="160"/>
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.15" Value="120"/>
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.20" Value="80"/>
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.25" Value="50"/>
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.30" Value="25"/>
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.35" Value="10"/>
                                            <DiscreteObjectKeyFrame  KeyTime="0:0:0.40" Value="0"/>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="MenuHideFlag">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Visible</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="MenuShowFlag">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Collapsed</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="ShadowBackground">
                                            <EasingDoubleKeyFrame KeyTime="0" Value="0.4"/>
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="0"/>
                                        </DoubleAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="ShadowBackground">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Visible</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                            <DiscreteObjectKeyFrame KeyTime="0:0:0.4">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Collapsed</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="PopupView">
                                            <DiscreteObjectKeyFrame KeyTime="0:0:0.4">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Collapsed</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="*"/>
                        </Grid.RowDefinitions>
                        <Grid Background="{TemplateBinding HeaderBackground}"
							Grid.Row="0"
							Height="50">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="50"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <Grid x:Name="MenuHideFlag"
                                  Height="50"
                                  Width="50" 
                                  Background="Transparent">
                                <Interactivity:Interaction.Behaviors>
                                    <Core:EventTriggerBehavior EventName="Tapped">
                                        <Core:CallMethodAction TargetObject="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" MethodName="MakeMenuOpen"/>
                                    </Core:EventTriggerBehavior>
                                </Interactivity:Interaction.Behaviors>
                                <TextBlock Text=""
                                           FontSize="{TemplateBinding FontSize}" 
                                           Foreground="White"
                                           Style="{StaticResource ButtonFont}">
                                </TextBlock>
                            </Grid>
                            <Grid x:Name="MenuShowFlag"
                                  Visibility="Collapsed"
                                  Height="50"
                                  Width="50" 
                                  Background="Transparent">
                                <Interactivity:Interaction.Behaviors>
                                    <Core:EventTriggerBehavior EventName="Tapped">
                                        <Core:CallMethodAction TargetObject="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" MethodName="MakeMenuClose"/>
                                    </Core:EventTriggerBehavior>
                                </Interactivity:Interaction.Behaviors>
                                <TextBlock Text=""
                                           Foreground="DeepSkyBlue"
                                           Style="{StaticResource ButtonFont}"
                                           FontSize="{TemplateBinding FontSize}"/>
                            </Grid>

                            <TextBlock Text="{TemplateBinding Header}" 
								VerticalAlignment="Center"
								Grid.Column="1"
								HorizontalAlignment="Left"
								Foreground="White"
								FontSize="{TemplateBinding FontSize}" />
                        </Grid>

                        <Grid Grid.Row="1">
                            <Grid Canvas.ZIndex="2" Visibility="Collapsed" x:Name="PopupView">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto"/>
                                    <ColumnDefinition Width="*"/>
                                </Grid.ColumnDefinitions>
                                <ScrollViewer Grid.Column="0" Background="White">
                                    <StackPanel x:Name="stackPanel" 
                                            HorizontalAlignment="Left"
                                        Width="0">
                                        <Button Style="{StaticResource NavigationButton}"
                                            Command="{Binding QuickAddCommand}">
                                            <Interactivity:Interaction.Behaviors>
                                                <Core:EventTriggerBehavior EventName="Tapped">
                                                    <Core:CallMethodAction TargetObject="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" MethodName="MakeMenuClose"/>
                                                </Core:EventTriggerBehavior>
                                            </Interactivity:Interaction.Behaviors>
                                            <StackPanel HorizontalAlignment="Left"
										Orientation="Horizontal">
                                                <Grid Margin="3">
                                                    <Ellipse Height="24" Width="24" StrokeThickness="3" Stroke="#FF5E95C1">
                                                        <Ellipse.Fill>
                                                            <ImageBrush Stretch="Fill"/>
                                                        </Ellipse.Fill>
                                                    </Ellipse>
                                                    <TextBlock Style="{StaticResource ButtonFont}"
                                                           FontSize="14"
                                                           Foreground="#FF5E95C1"
                                                           Text=""/>
                                                </Grid>
                                                <TextBlock Style="{StaticResource ButtonText}"
											Text="Quick Add" />
                                            </StackPanel>
                                        </Button>

                                        <Button Style="{StaticResource NavigationButton}"
                                            Command="{Binding AppointmentCommand}">
                                            <Interactivity:Interaction.Behaviors>
                                                <Core:EventTriggerBehavior EventName="Tapped">
                                                    <Core:CallMethodAction TargetObject="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" MethodName="MakeMenuClose"/>
                                                </Core:EventTriggerBehavior>
                                            </Interactivity:Interaction.Behaviors>
                                            <StackPanel HorizontalAlignment="Left"
										Orientation="Horizontal">
                                                <TextBlock Style="{StaticResource ButtonFont}"
											Text="" />
                                                <TextBlock Style="{StaticResource ButtonText}"
											Text="Appointments"  />
                                            </StackPanel>
                                        </Button>

                                        <Button Style="{StaticResource NavigationButton}">
                                            <Interactivity:Interaction.Behaviors>
                                                <Core:EventTriggerBehavior EventName="Tapped">
                                                    <Core:CallMethodAction TargetObject="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" MethodName="MakeMenuClose"/>
                                                </Core:EventTriggerBehavior>
                                            </Interactivity:Interaction.Behaviors>
                                            <StackPanel HorizontalAlignment="Left"
										Orientation="Horizontal">
                                                <TextBlock Style="{StaticResource ButtonFont}"
											Text="" />
                                                <TextBlock Style="{StaticResource ButtonText}"
											Text="Customers"  />
                                            </StackPanel>
                                        </Button>

                                        <Button Style="{StaticResource NavigationButton}">
                                            <Interactivity:Interaction.Behaviors>
                                                <Core:EventTriggerBehavior EventName="Tapped">
                                                    <Core:CallMethodAction TargetObject="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" MethodName="MakeMenuClose"/>
                                                </Core:EventTriggerBehavior>
                                            </Interactivity:Interaction.Behaviors>
                                            <StackPanel HorizontalAlignment="Left"
										Orientation="Horizontal">
                                                <TextBlock Style="{StaticResource ButtonFont}"
											Text="" />
                                                <TextBlock Style="{StaticResource ButtonText}"
											Text="Leads"  />
                                            </StackPanel>
                                        </Button>

                                        <Line Style="{StaticResource MenuDividingLineStyle}"/>

                                        <Button Style="{StaticResource NavigationButton}">
                                            <Interactivity:Interaction.Behaviors>
                                                <Core:EventTriggerBehavior EventName="Tapped">
                                                    <Core:CallMethodAction TargetObject="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" MethodName="MakeMenuClose"/>
                                                </Core:EventTriggerBehavior>
                                            </Interactivity:Interaction.Behaviors>
                                            <StackPanel HorizontalAlignment="Left"
										Orientation="Horizontal">
                                                <TextBlock Style="{StaticResource ButtonFont}"
											Text="" />
                                                <TextBlock Style="{StaticResource ButtonText}"
											Text="In Store Pickup"  />
                                            </StackPanel>
                                        </Button>

                                        <Button Style="{StaticResource NavigationButton}">
                                            <Interactivity:Interaction.Behaviors>
                                                <Core:EventTriggerBehavior EventName="Tapped">
                                                    <Core:CallMethodAction TargetObject="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" MethodName="MakeMenuClose"/>
                                                </Core:EventTriggerBehavior>
                                            </Interactivity:Interaction.Behaviors>
                                            <StackPanel HorizontalAlignment="Left"
										Orientation="Horizontal">
                                                <TextBlock Style="{StaticResource ButtonFont}"
											Text="" />
                                                <TextBlock Style="{StaticResource ButtonText}"
											Text="Event Check-in"  />
                                            </StackPanel>
                                        </Button>

                                        <Line Style="{StaticResource MenuDividingLineStyle}"/>

                                        <Button Style="{StaticResource NavigationButton}">
                                            <Interactivity:Interaction.Behaviors>
                                                <Core:EventTriggerBehavior EventName="Tapped">
                                                    <Core:CallMethodAction TargetObject="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" MethodName="MakeMenuClose"/>
                                                </Core:EventTriggerBehavior>
                                            </Interactivity:Interaction.Behaviors>
                                            <StackPanel HorizontalAlignment="Left"
										Orientation="Horizontal">
                                                <TextBlock Style="{StaticResource ButtonFont}"
											Text="" />
                                                <TextBlock Style="{StaticResource ButtonText}"
											Text="Store Portal"  />
                                            </StackPanel>
                                        </Button>

                                        <Button Style="{StaticResource NavigationButton}">
                                            <Interactivity:Interaction.Behaviors>
                                                <Core:EventTriggerBehavior EventName="Tapped">
                                                    <Core:CallMethodAction TargetObject="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" MethodName="MakeMenuClose"/>
                                                </Core:EventTriggerBehavior>
                                            </Interactivity:Interaction.Behaviors>
                                            <StackPanel HorizontalAlignment="Left"
										Orientation="Horizontal">
                                                <TextBlock Style="{StaticResource ButtonFont}"
											Text="" />
                                                <TextBlock Style="{StaticResource ButtonText}"
											Text="Retail Tasks"  />
                                            </StackPanel>
                                        </Button>

                                        <Button Style="{StaticResource NavigationButton}">
                                            <Interactivity:Interaction.Behaviors>
                                                <Core:EventTriggerBehavior EventName="Tapped">
                                                    <Core:CallMethodAction TargetObject="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" MethodName="MakeMenuClose"/>
                                                </Core:EventTriggerBehavior>
                                            </Interactivity:Interaction.Behaviors>
                                            <StackPanel HorizontalAlignment="Left"
										Orientation="Horizontal">
                                                <TextBlock Style="{StaticResource ButtonFont}"
											Text="" />
                                                <TextBlock Style="{StaticResource ButtonText}"
											Text="Reports"  />
                                            </StackPanel>
                                        </Button>

                                        <Button Style="{StaticResource NavigationButton}">
                                            <Interactivity:Interaction.Behaviors>
                                                <Core:EventTriggerBehavior EventName="Tapped">
                                                    <Core:CallMethodAction TargetObject="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" MethodName="MakeMenuClose"/>
                                                </Core:EventTriggerBehavior>
                                            </Interactivity:Interaction.Behaviors>
                                            <StackPanel HorizontalAlignment="Left"
										Orientation="Horizontal">
                                                <TextBlock Style="{StaticResource ButtonFont}"
											Text="" />
                                                <TextBlock Style="{StaticResource ButtonText}"
											Text="Helpdesk"  />
                                            </StackPanel>
                                        </Button>

                                        <Line Style="{StaticResource MenuDividingLineStyle}"/>

                                        <Button Style="{StaticResource NavigationButton}">
                                            <Interactivity:Interaction.Behaviors>
                                                <Core:EventTriggerBehavior EventName="Tapped">
                                                    <Core:CallMethodAction TargetObject="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" MethodName="MakeMenuClose"/>
                                                </Core:EventTriggerBehavior>
                                            </Interactivity:Interaction.Behaviors>
                                            <StackPanel HorizontalAlignment="Left"
										Orientation="Horizontal">
                                                <TextBlock Style="{StaticResource ButtonFont}"
											Text="" />
                                                <TextBlock Style="{StaticResource ButtonText}"
											Text="Settings"  />
                                            </StackPanel>
                                        </Button>

                                        <Button Style="{StaticResource NavigationButton}">
                                            <Interactivity:Interaction.Behaviors>
                                                <Core:EventTriggerBehavior EventName="Tapped">
                                                    <Core:CallMethodAction TargetObject="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" MethodName="MakeMenuClose"/>
                                                </Core:EventTriggerBehavior>
                                            </Interactivity:Interaction.Behaviors>
                                            <StackPanel HorizontalAlignment="Left"
										Orientation="Horizontal">
                                                <TextBlock Style="{StaticResource ButtonFont}"
											Text="" />
                                                <TextBlock Style="{StaticResource ButtonText}"
											Text="Logout"  />
                                            </StackPanel>
                                        </Button>
                                    </StackPanel>
                                </ScrollViewer>
                                <Grid x:Name="ShadowBackground"
                                  Grid.Column="1"
                                  Opacity="0.4" Background="Black" VerticalAlignment="Stretch">
                                    <Interactivity:Interaction.Behaviors>
                                        <Core:EventTriggerBehavior EventName="Tapped">
                                            <Core:CallMethodAction TargetObject="{Binding Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" MethodName="MakeMenuClose"/>
                                        </Core:EventTriggerBehavior>
                                    </Interactivity:Interaction.Behaviors>
                                </Grid>
                            </Grid>

                            <Grid x:Name="grid" Background="Transparent">
                                <ContentPresenter Margin="6,10,6,0"
									HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
									x:Name="contentPresenter"/>
                            </Grid>
                        </Grid>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>
3. 用法介绍
页面头部加入命名空间 
 xmlns:customControls="using:CustomControlContainer.CustomControls"

在页面根节点下放入
 <customControls:LeftMenuPane FontSize="22" Header="Customer">
<!-- 你的页面内容-->
</customControls:LeftMenuPane>



### 回答1: 非常感谢您的问题!我是 ChatGPT,我会尽力回答您的问题。 关于您提到的在微信内如何通过 Universal Link 启动 App 的问题,这需要您的 App 支持 Universal Link,并且需要正确配置您的服务器和 App。具体而言,您需要在您的 App 中添加 Universal Link 支持,并在您的服务器上为该链接提供正确的 JSON 文件,以便微信可以正确地解析并启动您的 App。 如果您遇到了困难,建议您可以查阅相关的文档和教程,或者咨询开发人员寻求帮助。同时,如果您有其他问题需要帮助,欢迎随时向我提问,我会尽力为您解答。 ### 回答2: 在微信内如何通过Universal Link唤起appUniversal Link(通用链接)是一种在iOS上使用的一种技术,可以通过点击链接直接打开指定的app而不是网页。下面是在微信内使用Universal Link唤起app的步骤: 1. 配置AppUniversal Link支持:首先,开发者需要在Xcode中对App进行配置,以支持Universal Link。这包括在App的Associated Domains中添加对应的域名,以及在AppDelegate中添加处理Universal Link的相关代码。 2. 注册并配置Domain Verification文件:开发者需要在对应的服务器上注册一个domain association file,该文件包含了App的Bundle ID以及对应的域名。并将该文件配置到服务器上。 3. 生成并验证证书:开发者需要生成并验证SSL证书,确保服务器上使用的所有域名都被正确认证。 4. 在微信公众平台上配置:开发者需要登录微信公众平台,在“移动应用”中找到对应App,并选择“应用链接”。然后,填写AppUniversal Link和对应的域名。并确认手机已安装了对应的App。 5. 发起唤起请求:在微信内,开发者可以通过链接的方式发送给用户。当用户点击此链接时,微信会先检查用户手机中是否已安装有对应的App。如已安装,会直接唤起App并打开指定的页面;如未安装,则会在微信内跳转到链接中指定的网页。 需要注意的是,微信只支持指定的部分域名,并且开发者需要保证App在用户手机中安装并且能够正常运行。 ### 回答3: 在微信内通过Universal Link唤起app需要以下几个步骤: 1. 首先,需要在微信开放平台注册并创建一个应用,获取到AppID。 2. 在自己的app内配置Universal Link。打开Xcode,在工程的Signing & Capabilities选项中,添加Associated Domains,然后添加一个格式为"applinks:yourdomain.com"的条目,其中yourdomain.com是你自己的域名。 3. 在你的服务器上配置Universal Link。在你的域名下创建一个名为apple-app-site-association的文件。这个文件要满足Apple的规定格式,并描述了应用和对应域名之间的关联关系。 4. 在微信开放平台的应用设置中,将"链接发送"选项设置为"开启",并在"完整链接"中填入你的Universal Link的网址。 5. 当用户在微信中点击发送给他人的链接时,微信会检测链接是否可以匹配到对应的Universal Link,如果可以,就会尝试唤起对应的app。 需要注意的是,为了保证唤起app的有效性,必须确保Universal Link的配置无误,并且已经发布到线上服务器上。此外,还需要确保用户的设备上已经安装了对应的app,否则无法唤起。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值