WPF:如何在弹出窗口中淡入和缩放用户控件

标签 wpf animation fade scale

我有一个用户控件,我想在用户单击按钮时显示该控件。 使用 af Popup 控件,这不是问题。

但是,我想让用户同时控制淡入和从 0.5 到 1.2 的缩放,然后返回到 1.0(X 和 Y)。

我该怎么做?

最佳答案

WPF 弹出窗口不透明,因此淡入和淡出实际上不起作用。您可以根据需要设置不透明度,但这不会改变任何事情。但是,您可以使用工具提示。它非常接近弹出窗口。不管怎样,这里有一些可以帮助您开始的东西:

<UserControl x:Class="WpfApplication1.UserControl1"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<UserControl.Style>
    <Style>
        <Style.Triggers>
            <EventTrigger RoutedEvent="FrameworkElement.Loaded">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetProperty="Opacity" Duration="00:00:02" From="0" To="1" />
                    </Storyboard>
                </BeginStoryboard>                  
            </EventTrigger>
            <Trigger Property="FrameworkElement.Visibility" Value="Collapsed">
                <Setter Property="FrameworkElement.Opacity" Value="0"/>             
            </Trigger>
        </Style.Triggers>
    </Style>
</UserControl.Style>
<Border x:Name="border" BorderBrush="Blue" BorderThickness="3" CornerRadius="3" Padding="3" Background="Orange"
    Width="175" Height="175">
    <TextBlock Text="Sample" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>

将其放在某个地方,我在同一个按钮上使用工具提示,仅用于演示目的:

<Button Click="OnButtonClick" Content="click to see popup">
        <Button.ToolTip>
            <ToolTip x:Name="popup" IsOpen="False" Background="Transparent" BorderBrush="Transparent" 
                     Placement="Bottom">
                <WpfApplication1:UserControl1/>
            </ToolTip>
        </Button.ToolTip>
    </Button>

对于后面的 OnButtonClick 代码,我只是切换了弹出窗口,这样我就可以多次单击它:

private void OnButtonClick(object sender, RoutedEventArgs e)
{
    popup.IsOpen = !popup.IsOpen;
}

关于WPF:如何在弹出窗口中淡入和缩放用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/862208/

相关文章:

wpf mvvm 错误验证

wpf - 在类型集合的 AttachedProperty 内绑定(bind)到其他元素

javascript onclick fade div in(短代码)

html - 在背景图像的底部创建静态淡入淡出

jquery 可以淡入淡出吗在视频中

c# - 绑定(bind)字体系列 ViewModel 属性

c# - 无法从 DragEventArgs 获取数据。 getData() 返回空值

javascript - 使用 CSS 制作高度动画

html - CSS3 动画中元素的旋转不平滑和连续

ios - 我应该使用 Core Animation 还是 SpriteKit/Cocos2D 来制作简单的闪烁 2D 动画?