具有可见选项卡的UWP XAML菜单弹出窗口

时间:2018-12-07 13:23:24

标签: c# xaml uwp

我正在尝试在Menu中创建一个从左侧滑出的UWP,但总是有一个选项卡可单击以将其打开。我要达到的目标的图片在这里-https://i.imgur.com/D7RPI0Q.png

到目前为止,我已经用下面的代码做到了这一点,并且几乎可以正常工作。但是作为弹出窗口和transition effect,红色标签在单击时会立即移动,这是不理想的。

我有一种感觉,我试图在这里重新发明轮子,并且已经内置了一些东西,可以做到这一点。

        <Grid Grid.Column="2" HorizontalAlignment="Left" VerticalAlignment="Center">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="50"/>
            </Grid.ColumnDefinitions>
            <Popup x:Name="FilterPopup" IsLightDismissEnabled="False" Width="0" Height="500" Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Center" IsOpen="False">
                <Popup.ChildTransitions>
                    <TransitionCollection>
                        <PaneThemeTransition Edge="Left"/>
                    </TransitionCollection>
                </Popup.ChildTransitions>
                <Rectangle Width="200" Height="500" Fill="Blue"/>
            </Popup>
            <Rectangle Tapped="Rectangle_Tapped" Grid.Column="1" Height="200" Fill="Red"/>
        </Grid>



        private void Rectangle_Tapped(object sender, TappedRoutedEventArgs e)
        {
            if (FilterPopup.IsOpen)
            {
                FilterPopup.IsOpen = false;
                FilterPopup.Width = 0;
            }
            else
            {
                FilterPopup.IsOpen = true;
                FilterPopup.Width = 200;
            }
        }

1 个答案:

答案 0 :(得分:0)

是的,您正在重新发明轮子。

您想要的在UWP中称为SplitView

XAML看起来像这样,可以像大多数XAML控件一样进行自定义,以根据需要工作和感觉。

摘自MS的示例:https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Xaml.Controls.SplitView

<SplitView IsPaneOpen="True"
           DisplayMode="Inline"
           OpenPaneLength="296">
    <SplitView.Pane>
        <TextBlock Text="Pane"
                   FontSize="24"
                   VerticalAlignment="Center"
                   HorizontalAlignment="Center"/>
    </SplitView.Pane>

    <Grid>
        <TextBlock Text="Content"
                   FontSize="24"
                   VerticalAlignment="Center"
                   HorizontalAlignment="Center"/>
    </Grid>
</SplitView>

有一些选项可让窗格(即菜单项)滑出现有内容,在滑动时移动现有内容,等等。WindowsStore MS Weather应用程序使用此,旧的Groove应用程序是MS Mail应用程序,我已经用过了,还有更多。