我有一个用户控件,我想在用户点击按钮时显示该控件。 这不是问题,使用弹出窗口控件。
但是,我想让用户控制淡入并同时从0.5扩展到1.2并回到1.0(X和Y)。
我该怎么做?
答案 0 :(得分:3)
WPF Popups不透明,因此淡入淡出并不会真正起作用。你可以随心所欲地设置不透明度,但这不会改变一件事。但是,您可以使用工具提示。它非常接近弹出窗口。无论如何,这是让你开始的东西:
<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;
}
答案 1 :(得分:1)
WPF弹出窗口可以处理透明度,只需设置以下内容
即可<Popup AllowsTransparency="True" PopupAnimation="Fade">