zoukankan      html  css  js  c++  java
  • 14、XAML Popup

    1、Popup Fundamentals:

          基本的 Popup。

          Popup 是一个通过 child 属性承载内容(UIElements )的容器,并且显示在当前窗口的顶部。但是 Popup 本书并不是一个

    UIElement 并且没有默认的 visual 模版。它是依靠开发者设置其中的内容。 可以通过设置 Popup 的 HorizontalOffset 和

    VerticalOffset 的值 或者 Canvas.Left / Canvas.Top 附加属性明确的放到 窗口上面。设置  Offset 值会使 Popup 参照它的

    父容器控件进行偏离。

               设置 Popup 的 IsOpen  属性为 false 或 true 使其进行隐藏和显示。

            <Grid >
    //打开 Popup <Button Content="Show Popup (using Offset)" Click="ShowPopupOffsetClicked" />
    <Popup VerticalOffset="10" HorizontalOffset="200" x:Name="StandardPopup"> <Border BorderThickness="2" Width="200" Height="200"> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> <TextBlock Text="Simple Popup" FontSize="24.667" HorizontalAlignment="Center" /> // 隐藏 Popup <Button Content="Close" Click="ClosePopupClicked" HorizontalAlignment="Center" /> </StackPanel> </Border> </Popup> </Grid>

    2、Popup as 'Flyout' :

         Popup 控件也可以包含 'flyout' 动画效果,比如在应用中作为一个 AppBar 或者 设置面板的 弹出菜单、弹出输入框等。所有

    这些弹出动画,只需要包含一句属性设置 : IsLightDismissEnable 的为 true 即可。

         这个 IsLightDismissedEnabled 属性结合一些 animation 过度可以帮助完成一些特效。并且开发人员有责任把 Popup 控件

    跟你准则放到合适的位置。

         1) Show Popup (with light dismiss):

    页面的 xaml :

    // 控制 Popup 弹出的按钮
     <Button Content="Show Popup (with light dismiss)" 
    Click="ShowPopupLightDismissClicked" />
    
    //弹出的 Popup
     <Popup x:Name="LightDismissSimplePopup" HorizontalOffset="200" VerticalOffset="10" 
    IsLightDismissEnabled="True"> <Border BorderBrush="{StaticResource ApplicationForegroundThemeBrush}"
    BorderThickness="2"
    Background="{StaticResource ApplicationPageBackgroundThemeBrush}"
    Width="200" Height="200"> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> <TextBlock Text="Simple Popup" FontSize="24.667"
    HorizontalAlignment="Center" /> <Button Content="Close" Click="ClosePopupClicked"
    HorizontalAlignment="Center" /> </StackPanel> </Border> </Popup>


    弹出按钮的 C#  单击事件:

      private void ShowPopupLightDismissClicked(object sender, RoutedEventArgs e)
            {
                if (!LightDismissSimplePopup.IsOpen) { LightDismissSimplePopup.IsOpen = true; }
            }

    2) Show Popup (with light dismiss and animations) :

          本示例和 1) 中类似,就是在 xaml 中 Popup 控件(LightDismissSimplePopup)增加了 PopupThemeTransition属性,使其弹出时, 有个向上淡入的效果 :

    <Popup.ChildTransitions>
                        <TransitionCollection>
                            <PopupThemeTransition />
                        </TransitionCollection>
       </Popup.ChildTransitions>

    3) Show Popup (simulating Settings) :

        这个 Popup 控件和 2) 的区别是增加的 PaneThemeTransition 效果(像设置面板类似, 从窗口右侧滑入) :

    //加入到 1) 中的 Popup 中  
    <Popup.ChildTransitions>
                        <TransitionCollection>
                            <PaneThemeTransition />
                        </TransitionCollection>
      </Popup.ChildTransitions>

    并且通过在 按钮单击的事件中,设置其水平方向参照窗口的宽度进行设置, 其按钮单击事件的 C# 代码为:

       private void ShowPopupSettingsClicked(object sender, RoutedEventArgs e)
            {
                if (!SettingsAnimatedPopup.IsOpen) 
                {
                     RootPopupBorder.Width = 646;
                    
    //
    Window.Current.Bounds : 获取应用程序窗口的高度和宽度的值,作为 Rect 值。 SettingsAnimatedPopup.HorizontalOffset = Window.Current.Bounds.Width - 646; SettingsAnimatedPopup.IsOpen = true; } }

    显示效果:

  • 相关阅读:
    python pyinotify模块详解
    lastpass密码管理工具使用教程
    MAMP 环境下安装Redis扩展
    SourceTree使用方法
    Mac securecrt 破解
    Memcache 安装
    Warning: setcookie() expects parameter 3 to be long, string given
    SQLSTATE[HY000] [2002] Connection refused
    插件管理无法访问
    光栅化渲染器
  • 原文地址:https://www.cnblogs.com/hebeiDGL/p/2690638.html
Copyright © 2011-2022 走看看