1

我正在尝试在 Windows Phone 8 中创建试用应用程序,并且我希望允许用户在按钮单击事件上选择是否购买该应用程序。我的想法是,在启动了这么多之后,MainPage 顶部会出现某种变暗或覆盖,因此用户可能无法与应用程序交互,并且会在顶部显示消息和按钮,最终询问用户是否想要是否购买该应用程序。有可能做这样的事情吗?我不确定是否真的创建一个全新的页面会更好,但我的想法是,如果用户可以看到变暗覆盖层背后的功能,他们会更愿意继续购买以恢复这些功能. 我怎么能做这样的事情?

编辑

也许适应这样的东西http://developer.nokia.com/Community/Wiki/Create_simple_overlay_with_UserControl_in_Windows_Phone

4

1 回答 1

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)启动即可。

于 2013-10-09T23:10:33.433 回答