Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使卡片淡入淡出C#/WPF/MaterialDesign_C#_Wpf_Xaml - Fatal编程技术网

如何使卡片淡入淡出C#/WPF/MaterialDesign

如何使卡片淡入淡出C#/WPF/MaterialDesign,c#,wpf,xaml,C#,Wpf,Xaml,单击按钮后,我希望我的卡淡入,然后在设定的时间后淡出。不幸的是,我是C#/WPF新手,不知道该怎么做。目前我也在使用MaterialDeisgn和Dragablz 我尝试了这个解决方案,但它只是导致我的程序崩溃。有人能帮我吗?因为我根本不知道该怎么做,所以我已经为我想要淡入/淡出的卡匹配了XAML(它将通过单击其他按钮触发) 为清晰起见进行编辑:我试图使其开始隐藏,当MainWindow.xaml.cs中的if语句为true时,淡入淡出一段时间(可能是一秒钟?),然后保持隐藏,直到再次触发 &l

单击按钮后,我希望我的卡淡入,然后在设定的时间后淡出。不幸的是,我是C#/WPF新手,不知道该怎么做。目前我也在使用MaterialDeisgn和Dragablz

我尝试了这个解决方案,但它只是导致我的程序崩溃。有人能帮我吗?因为我根本不知道该怎么做,所以我已经为我想要淡入/淡出的卡匹配了XAML(它将通过单击其他按钮触发)

为清晰起见进行编辑:我试图使其开始隐藏,当MainWindow.xaml.cs中的if语句为true时,淡入淡出一段时间(可能是一秒钟?),然后保持隐藏,直到再次触发

<materialDesign:Card

    x:Name="userFound"
    HorizontalAlignment="Center"
    VerticalAlignment="Center"
    Background="{DynamicResource PrimaryHueMidBrush}"
    Foreground="{DynamicResource PrimaryHueDarkForegroundBrush}"
    Width="81"
    Padding="8"
    materialDesign:ShadowAssist.ShadowDepth="Depth2"
    UniformCornerRadius="6" Margin="-60,0,0,249">
        <TextBlock
        TextWrapping="Wrap">
        User Found!
        </TextBlock>
</materialDesign:Card>


用户找到了!
非常感谢你的帮助!我100%迷路了,所以一切都有帮助。

这是从和修改而来的


这是一种方法,但还有更好的方法。我现在想不出它们,但我知道它们存在

这很好,但我有个问题。如果我想使其在动画制作之前必须进行验证(即,在main window.xaml.cs中的If语句为true),我将如何使其在返回true之前不动画?您是否在代码隐藏文件中的单击事件中谈论此问题?是-当单击按钮时,它会检查字符串中是否有用户名。userFound是一张弹出的卡片,上面写着“User Found!”,所以我希望这样做,这样,如果在字符串中找到用户,卡片只会淡入/淡出。编辑了我的答案,但更好的答案将来自其他地方我需要变得更好我自己我会确保明天尝试这个-尽管只有一个问题。我会将页面资源添加到MainWindow.xaml还是App.xaml?询问是因为我尝试了一个解决方案,在main window.xaml中添加了一个,它去掉了我使用的所有MaterialDesign/Dragablz内容,但将其添加到App.xaml中保留了它,但它不起作用。看到你在那里的巨大余量了吗?当你交付应用程序时,这几乎总是一个问题。用户通常有不同的“大小”显示,较大的固定边距是一个问题。最好使用具有比例列/行的网格,并将内容放在其“单元格”中。如果有一堆控件,那可能是一个stackpanel。出于这个原因,将控件拖到设计图面上几乎从来都不是一个好的计划。
<Button>
 <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
          <BeginStoryboard>
            <Storyboard>
                <DoubleAnimation BeginTime="0:0:0.0" Storyboard.TargetName="userFound" Storyboard.TargetProperty="(Card.Opacity)" From="0" To="1" Duration="0:0:0.5"/> //Fade in taking half a second  
                <DoubleAnimation BeginTime="0:0:1.5" Storyboard.TargetName="userFound" Storyboard.TargetProperty="(Card.Opacity)" From="1" To="0" Duration="0:0:0.5"/>//Fade out takes half a second 
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger>
 </Button.Triggers>
<Button>
<Page.Resources>
        <Storyboard x:Key="Test">
            <DoubleAnimation BeginTime="0:0:0.0" Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:0.5"/> //Fade in taking half a second
            <DoubleAnimation BeginTime="0:0:1.5" Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:0.5"/> //Fade out takes half a second
        </Storyboard>
    </Page.Resources>
if(truecondition)
{
((Storyboard)this.Resources["Test"]).Begin(userFound);
}