Pregunta

Tengo un control de usuario que me gustaría mostrar cuando el usuario hace clic en un botón. Eso no es un problema, utilizando el control emergente af.

Sin embargo, me gustaría tener el fundido de entrada de control de usuario y la escala de 0,5 a 1,2 y de nuevo a 1,0 (X e Y) al mismo tiempo.

¿Cómo se hace eso?

¿Fue útil?

Solución

WPF ventanas emergentes no son transparentes, por lo intensificar y atenuar cabo realmente no va a funcionar. Puede establecer la opacidad todo lo que quiera, pero eso no va a cambiar nada. Sin embargo, se puede jugar con el texto de ayuda. Es bastante cerca de una ventana emergente. De todos modos, aquí hay algo para empezar:

<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>

plop en alguna parte, yo estoy usando un texto de ayuda en el mismo botón, sólo para fines de demostración:

<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>

para el código OnButtonClick detrás, sólo toggleed la ventana emergente para que pueda hacer clic más de una vez:

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

Otros consejos

ventanas emergentes WPF pueden manejar la transparencia, acaba de establecer lo siguiente

<Popup AllowsTransparency="True" PopupAnimation="Fade">
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top