none
snap的问题 RRS feed

  • 问题

  • A页面snap里面显示A页面的SNAPview,BCDE页面snap之后显示A页面的SNAPview,F页面显示F页面的SNAPview

    求问怎么做到啊?

    2012年6月29日 3:27

答案

  • 提供两个思路

    方法一:把SnapView写成一个用户控件,然后在不同页面加入你需要的不同的SnapView.

    例如在ABCDE中都加入SnapViewA控件,在F中加入SnapViewF控件。

    <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="OrientationStates"> <VisualState x:Name="Full"/> <VisualState x:Name="Fill"/> <VisualState x:Name="Portrait"/> <VisualState x:Name="Snapped"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="fullMainFrame" Storyboard.TargetProperty="Visibility" > <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="snapMainView" Storyboard.TargetProperty="Visibility" > <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups>

     <Frame SourcePageType="full:MainView" x:Name="fullMainFrame" Navigated="mainFrame_Navigated_1" ></Frame>
         
     <snap:SnapViewA x:Name="snapMainView"  Visibility="Collapsed"/>


    方法二:

    把SnapView写成Page,然后在Snap事件处理中,把根据当前页面导航到合适的Page

    2012年6月29日 7:12

全部回复

  • 提供两个思路

    方法一:把SnapView写成一个用户控件,然后在不同页面加入你需要的不同的SnapView.

    例如在ABCDE中都加入SnapViewA控件,在F中加入SnapViewF控件。

    <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="OrientationStates"> <VisualState x:Name="Full"/> <VisualState x:Name="Fill"/> <VisualState x:Name="Portrait"/> <VisualState x:Name="Snapped"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="fullMainFrame" Storyboard.TargetProperty="Visibility" > <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="snapMainView" Storyboard.TargetProperty="Visibility" > <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups>

     <Frame SourcePageType="full:MainView" x:Name="fullMainFrame" Navigated="mainFrame_Navigated_1" ></Frame>
         
     <snap:SnapViewA x:Name="snapMainView"  Visibility="Collapsed"/>


    方法二:

    把SnapView写成Page,然后在Snap事件处理中,把根据当前页面导航到合适的Page

    2012年6月29日 7:12
  • 提供两个思路

    方法一:把SnapView写成一个用户控件,然后在不同页面加入你需要的不同的SnapView.

    例如在ABCDE中都加入SnapViewA控件,在F中加入SnapViewF控件。

    <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="OrientationStates"> <VisualState x:Name="Full"/> <VisualState x:Name="Fill"/> <VisualState x:Name="Portrait"/> <VisualState x:Name="Snapped"> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="fullMainFrame" Storyboard.TargetProperty="Visibility" > <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> </ObjectAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="snapMainView" Storyboard.TargetProperty="Visibility" > <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups>

     <Frame SourcePageType="full:MainView" x:Name="fullMainFrame" Navigated="mainFrame_Navigated_1" ></Frame>
         
     <snap:SnapViewA x:Name="snapMainView"  Visibility="Collapsed"/>


    方法二:

    把SnapView写成Page,然后在Snap事件处理中,把根据当前页面导航到合适的Page


    对于方法一,怎样才能让不同的页面显示同样的控件,并取到相同的数据呢?
    2012年6月29日 7:58
  • 因为引用的是同一样用户控件,所以肯定是同样的控件了。

    相同的数据,要看你的具体实现。例如,将控件绑定到同一个ViewModel实例

    2012年6月29日 8:49