1、XAML代碼
<Window x:Class="故事板.MainWindow" x:Name="window" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:hc="clr-namespace:故事板" Title="MainWindow" Height="350" Width="525" > <Window.Resources> <hc:BtnHeightConverter x:Key="convert"></hc:BtnHeightConverter> </Window.Resources> <Window.Triggers> <EventTrigger RoutedEvent="Window.Loaded"> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetName="dog" Storyboard.TargetProperty="Height" From="30" To="{Binding ElementName=window,Path=Height,Converter={StaticResource convert}}" Duration="0:0:1" ></DoubleAnimation> <DoubleAnimation Storyboard.TargetName="dog" Storyboard.TargetProperty="Width" From="30" To="{Binding ElementName=window,Path=Width,Converter={StaticResource convert}}" Duration="0:0:2" ></DoubleAnimation> </Storyboard> </BeginStoryboard> </EventTrigger> </Window.Triggers> <Grid> <Button x:Name="dog" Width="30" Height="30" > dog </Button> </Grid> </Window>
2、后台代碼
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace 故事板 { /// <summary> /// MainWindow.xaml 的交互邏輯 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } } public class BtnHeightConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { double width = 0; width = (double)value - 150; return width; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } } }
3、效果
