繁体   English   中英

WPF应用程序中两个窗口之间的过渡效果

[英]Transition effects between two windows in wpf application

我是WPF的新手,正在创建一个简单的应用程序。 基本上,该应用程序显示一个人的年龄。 我为此使用了两个窗口。 第一个窗口以DOB作为输入,第二个弹出窗口显示其当前年龄。 现在我想要的是对显示年龄的弹出窗口应用一些简单的过渡效果。 可能没有任何影响。 下面是主窗口的C#代码。

namespace WpfApplication6
{

    public partial class MainWindow : Window
    {
        int year;
        public MainWindow()
        {
            InitializeComponent();
            string n = DateTime.Now.ToString();
        }

        private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {


        }

        private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
        }


        private void button1_Click(object sender, RoutedEventArgs e)
        {
            string yearlist = comboBox3.SelectionBoxItem.ToString();
            string date = comboBox1.SelectionBoxItem.ToString();
            string month= comboBox2.SelectionBoxItem.ToString();
            if (date == "DD")
            { MessageBox.Show("Select date"); }
            else
            {
                if (month == "MM")
                { MessageBox.Show("Select month"); }
                else
                {

                    if (yearlist == "YYYY")
                    { MessageBox.Show("Select year"); }
                    else
                    {
                        System.DateTime dob = new System.DateTime(Convert.ToInt16(comboBox3.SelectionBoxItem), Convert.ToInt16(comboBox2.SelectionBoxItem), Convert.ToInt16(comboBox1.SelectionBoxItem), 12, 0, 0);

                        System.TimeSpan diff = DateTime.Now.Subtract(dob);
                        year = (Convert.ToInt32(diff.Days) / 365);
                        int days = (Convert.ToInt32(diff.Days) % 365);
                        string str = string.Format("Age is:{0} years and {1} days", year, days);
                        newwindow nw = new newwindow(str);
                        nw.Show();

                  }
                }
            }

        }

        private void comboBox2_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {

        }
    }
}

现在将代码弹出窗口

namespace WpfApplication6
{

    public partial class newwindow : Window
    {

        public newwindow(string strmsg)
        {
            InitializeComponent();
            label1.Content = strmsg;
        }

        private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
        {

        } 
    }
}

otherWindow.Opacity=0; 
otherWindow.Show();

并应用从0到1的简单不透明度动画迭代。它将创建漂亮的淡入效果。

DoubleAnimation da = new DoubleAnimation();
da.From = 1;
da.To = 0;
da.Duration = new Duration(TimeSpan.FromSeconds(2));
da.AutoReverse = true;
da.RepeatBehavior = RepeatBehavior.Forever;
// da.RepeatBehavior=new RepeatBehavior(3);
rectangle1.BeginAnimation(OpacityProperty, da);

参见http://tarundotnet.wordpress.com/2011/03/18/wpf-tutorial-change-opacity-using-animation/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM