我正在尝试在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;
}
}
答案 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应用程序,我已经用过了,还有更多。