c# - How to make an animation when changing window
问题描述
Hello I have a code where it switches from one Grid to another, this part of the code works fine.
However, I would like to know how I can create an animation before changing the Grid to another to change the opacity of the Grid from 1 to 0.
I would also like to know a way on how I can link my ListBoxItem to change as the Grid changes.
I didn't like the way my code was written in the C # part, is it possible to make these changes from one Grid to another using only XAML?
My Xaml Code:
<Grid>
<Grid Height="300" Width="600">
<Grid Name="Blue" Background="Blue" Visibility="Visible">
<TextBlock Text="Blue" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="20"/>
</Grid>
<Grid Name="Yellow" Background="Yellow" Visibility="Collapsed">
<TextBlock Text="Yellow" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="20"/>
</Grid>
<Grid Name="Red" Background="Red" Visibility="Collapsed">
<TextBlock Text="Red" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="20"/>
</Grid>
<Button Width="80" Height="40" Content="Previous" HorizontalAlignment="Left" VerticalAlignment="Center" Click="Previous" />
<Button Width="80" Height="40" Content="Next" HorizontalAlignment="Right" VerticalAlignment="Center" Click="Next" />
<ListBox Background="Transparent" VerticalAlignment="Bottom" HorizontalAlignment="Center">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Center" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBoxItem Name="G1" Content="Blue"/>
<ListBoxItem Name="G2" Content="Yellow"/>
<ListBoxItem Name="G3" Content="Red"/>
</ListBox>
</Grid>
</Grid>
My C# code:
private void Previous(object sender, RoutedEventArgs e)
{
if (Blue.Visibility == Visibility.Visible)
{
Blue.Visibility = Visibility.Collapsed;
Red.Visibility = Visibility.Visible;
} else if(Red.Visibility == Visibility.Visible)
{
Red.Visibility = Visibility.Collapsed;
Yellow.Visibility = Visibility.Visible;
} else if(Yellow.Visibility == Visibility.Visible)
{
Yellow.Visibility = Visibility.Collapsed;
Blue.Visibility = Visibility.Visible;
}
}
private void Next(object sender, RoutedEventArgs e)
{
if (Blue.Visibility == Visibility.Visible)
{
Blue.Visibility = Visibility.Collapsed;
Yellow.Visibility = Visibility.Visible;
}
else if (Yellow.Visibility == Visibility.Visible)
{
Yellow.Visibility = Visibility.Collapsed;
Red.Visibility = Visibility.Visible;
} else if (Red.Visibility == Visibility.Visible)
{
Red.Visibility = Visibility.Collapsed;
Blue.Visibility = Visibility.Visible;
}
}
解决方案
推荐阅读
- html - 使 TextArea 填充屏幕顶部,IFrame 填充底部
- c# - 程序不等到单击按钮 c# Windows Forms
- java - 无法在java中加载数据库文件
- javascript - 在 Javascript 和 HTML 画布中导入关卡的外部游戏地图(保存为 `.js`)
- ios - 用于将文件下载到 iOS 的 Cordova 文件传输插件
- php - WordPress 错误与自定义简码功能一起出现
- docker - 如何通过运行传递参数以供 Dockerfile 使用?
- python - Python - 无法正确读取十六进制 0A
- c - sscanf忽略C中的空格
- jquery - 固定标题在视差图像上消失