Xaml UWP:如何在2秒后隐藏RelativePanel

Xaml UWP:如何在2秒后隐藏RelativePanel,xaml,uwp,hide,padding,visualstatemanager,Xaml,Uwp,Hide,Padding,Visualstatemanager,我开发了一个UWP应用程序,允许用户编辑表单。 我想使用RelativePanel在主页上向用户显示消息。 这些消息可能涉及表单管理(“表单XXX已完全删除”、“表单XXX已完全保存”)或同步(“同步成功结束”、“无法同步数据”) 主页页面基于包含3行的网格: 过滤搜索框 表格清单 同步信息 以下是此页面的屏幕截图: 我想在同步信息上方的第3行显示RelativePanel,但仅在2秒内显示。然后RelativePanel将消失,同步信息必须再次可见 我还遇到了相对面板宽度的问题:我希望左

我开发了一个UWP应用程序,允许用户编辑表单。 我想使用RelativePanel主页上向用户显示消息。 这些消息可能涉及表单管理(“表单XXX已完全删除”、“表单XXX已完全保存”)或同步(“同步成功结束”、“无法同步数据”)

主页页面基于包含3行的网格:

  • 过滤搜索框
  • 表格清单
  • 同步信息
以下是此页面的屏幕截图:

我想在同步信息上方的第3行显示RelativePanel,但仅在2秒内显示。然后RelativePanel将消失,同步信息必须再次可见

我还遇到了相对面板宽度的问题:我希望左/右填充为150,但似乎不起作用:

我的XAML代码如下所示:

<!-- User + Last sync-->
<Grid Grid.Row="2">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <TextBlock Text="{Binding CurrentUser.username}" />
    <StackPanel Grid.Column="1"
                Orientation="Horizontal"
                HorizontalAlignment="Right">
        <TextBlock x:Uid="HomeTextBlockLastSync" Margin="0,0,8,0"/>
        <TextBlock Text="{Binding LastSync, Mode=TwoWay}" />
    </StackPanel>
</Grid>

<!-- Form Status message -->
<RelativePanel Grid.Row="2" 
               Background="Cyan"
               Padding="150,0,150,0">
    <StackPanel x:Name="FormStatusPanel" Orientation="Vertical" 
                    RelativePanel.AlignHorizontalCenterWithPanel="True"
                    RelativePanel.AlignVerticalCenterWithPanel="True">
        <Border x:Name="FormStatusBorder" Margin="0">
            <ScrollViewer VerticalScrollMode="Auto"  
                          VerticalScrollBarVisibility="Auto" 
                          MaxHeight="150">
                <TextBlock Text="TestTestTest"
                           x:Name="FormStatusBlock" FontWeight="Bold"
                           TextWrapping="Wrap" />
            </ScrollViewer>
        </Border>
    </StackPanel>
</RelativePanel>


=>你知道为什么填充不起作用吗?2秒后隐藏RelativePanel的更好方法是什么?使用VisualStateManager或通过代码?

您可以使用[Dispatcher timer][1],将相对面板可见性更改为“折叠”,并将持续时间设置为2秒。[1] :谢谢你,普拉蒂。但是可以在ViewModel中使用Dispatcher吗?消息将通过ViewModel初始化,因此我必须在哪里使用Dispatchermer:在ViewModel中还是在代码隐藏中?