WP8.1 - 如何在页面底部显示弹出窗口?

时间:2014-11-05 22:42:13

标签: c# xaml windows-phone-8.1 windows-phone

我正在为WP8.1构建一个应用程序,我需要一个自定义键盘将一些特定字符输入到TextBox中。我决定使用Flyout通过一系列按钮显示用户控件,这样用户就可以点击每个按钮添加一个新角色。

一切正常,但问题是我找不到在页面后半部分或页面底部显示Flyout的方法。 这是我用来显示它的方法:

private void Button_Click(object sender, RoutedEventArgs e)
    {
        var flyout = new Flyout();
        var tb = new CustomKeyboard();
        flyout.Placement = FlyoutPlacementMode.Bottom;
        flyout.ShowAt(Window.Current.Content as FrameworkElement);
    }

这样可行,但即使我选择了底部放置,弹出按钮也会显示在我的页面顶部。我还尝试创建一个有两行的网格,第二行有另一个Grid,并用内部网格作为FrameworkElement调用弹出窗口,但它仍然显示在我的页面顶部,我不知道这是为什么。

我错过了什么吗?有没有办法在底部显示该弹出窗口,或者是否有其他控件/类可以用来做到这一点?

谢谢! 塞尔吉奥

编辑:我最终使用了网格和一些故事板,如建议的那样:)

<!--Transitions-->
<Page.Resources>
    <Storyboard x:Name="tastieraInDestra">
        <DoubleAnimation Storyboard.TargetName="tastiera" Storyboard.TargetProperty="Opacity"
                         From="0.0" To="1.0" Duration="0:0:0.3"/>
        <DoubleAnimation Storyboard.TargetName="SlideIn" Storyboard.TargetProperty="X"
                         From="750" To="0" Duration="0:0:0.4"/>
    </Storyboard>
    <Storyboard x:Name="tastieraInSinistra">
        <DoubleAnimation Storyboard.TargetName="tastiera" Storyboard.TargetProperty="Opacity"
                         From="0.0" To="1.0" Duration="0:0:0.3"/>
        <DoubleAnimation Storyboard.TargetName="SlideIn" Storyboard.TargetProperty="X"
                         From="-750" To="0" Duration="0:0:0.4"/>
    </Storyboard>
    <Storyboard x:Name="tastieraOutDestra">
        <DoubleAnimation Storyboard.TargetName="tastiera" Storyboard.TargetProperty="Opacity"
                         From="1.0" To="0.0" Duration="0:0:0.3"/>
        <DoubleAnimation Storyboard.TargetName="SlideIn" Storyboard.TargetProperty="X"
                         From="0" To="750" Duration="0:0:0.4"/>
    </Storyboard>
    <Storyboard x:Name="tastieraOutSinistra">
        <DoubleAnimation Storyboard.TargetName="tastiera" Storyboard.TargetProperty="Opacity"
                         From="1.0" To="0.0" Duration="0:0:0.3"/>
        <DoubleAnimation Storyboard.TargetName="SlideIn" Storyboard.TargetProperty="X"
                         From="0" To="-750" Duration="0:0:0.4"/>
    </Storyboard>
</Page.Resources>

我在pivot.SelectionChanged方法中控制这些Storyboard,并在主页面的网格中添加了所有内容。唯一的缺点是现在我的主页面xaml文件变得有点拥挤,因为我在一个页面中拥有所有UI,但它工作正常:D 谢谢!

0 个答案:

没有答案