WPF:-フェードイン、ポップアップでユーザーコントロールを拡張する方法

StackOverflow https://stackoverflow.com/questions/862208

  •  21-08-2019
  •  | 
  •  

質問

私は、ユーザーがボタンをクリックしたときに表示したいユーザーコントロールを持っています。 これは、AFポップアップコントロールを使用して、問題はありません。

しかし、私は0.5から同時に(XとYの両方)1.2およびバック1.0にユーザ制御フェードイン及びスケールを有するたい。

どのように私はそれを行うのですか?

役に立ちましたか?

解決

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コードのため、私は複数回、それをクリックすることができますので、私はちょうどポップアップをtoggleedます:

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

他のヒント

WPFのポップアップが透明性を扱うことができ、単に次のように設定します。

<Popup AllowsTransparency="True" PopupAnimation="Fade">
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top