我正在尝试在Windows Phone 8中创建试用版应用程序,并且我希望允许用户选择是否在按钮单击事件上购买应用程序。我的想法是,经过这么多次发布后,MainPage会在其上面进行某种调暗或覆盖,这样用户就不会与应用程序进行交互,并且消息和按钮会显示在顶部,最终会询问用户是否需要是否购买应用程序。可以这样做吗?我不确定是否真的创建一个全新的页面会更好,但我的想法是,如果用户可以看到灰色叠加层背后的功能,他们将更有吸引力继续购买以回到这些功能。我怎么能这样做?
修改
也许适应像http://developer.nokia.com/Community/Wiki/Create_simple_overlay_with_UserControl_in_Windows_Phone这样的东西?
答案 0 :(得分:0)
这应该相当简单 - 首先添加一个像边框这样的叠加层和默认隐藏的“购买”按钮。只需确保叠加层是根的最后一个子节点,以便它始终显示在顶部:
<Grid x:Name="LayoutRoot">
<!-- Main content here -->
<Border x:Name="overlay" RowSpan="10" ColumnSpan="10"
Opacity="0.5" Background="#666"
Visibility="Collapsed" />
<Button x:Name="btnPurchase"
Content="Purchase"
HorizontalAlignment="Center" VerticalAlignment="Center"
Command="{Binding StartPurchaseCommand}"
Visibility="Collapsed" />
</Grid>
现在添加“购买”视觉状态以显示叠加+按钮:
<Grid x:Name="LayoutRoot">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="PurchaseStates">
<VisualState x:Name="TrialState" />
<VisualState x:Name="PurchaseRequired">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="overlay" Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame.Value>
<Visibility>Visible</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
<ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="btnPurchase" Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame.Value>
<Visibility>Visible</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
<ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
然后,只要在试用期过后,就可以在启动时调用VisualStateManager.GoToState(this, "PurchaseRequired", true)
。